Menyiapkan Lingkungan Development Lokal Laravel di Linux (Ubuntu 20.04) 🐧
December 22, 2021 ⏱️6 min readIntro
Sejak tahun 2020 saya gunakan Linux sebagai OS kedua saya setelah Windows. Memang sedikit susah untuk berpindah dari Windows ke Linux apabila sudah nyaman memakainya. Bisa dibilang menggunakan linux lebih “ribet” dibanding menggunakan windows. Kenapa? Karena yang pertama dan yang paling utama adalah ketika kita sudah bergantung dengan yang namanya aplikasi Office milik Microsoft, di Linux tidak ada aplikasi Microsoft Word, Microdoft Pwoer Point, dll. Namun ada aplikasi alternatif seperti Libre, Onlyoffice, WPS office, dll. Yang perlu penyesuaian serta kebanyakan tidak kompatible dengan beberapa format di aplikasi Microsoft Office. Selain tidak adanya Microsoft Office, Alasan selanjutnya adalah kita harus familiar dengan yang namanya CLI atau Command Line Interface. Yaitu kita menggunakan baris perintah untuk melakukan sesuatu contohnya seperti updade repository, upgrade system, dll. Namun semakin kesini banyak distro Linux yang mempemudah sehingga ramah untuk pengguna linux awal.
Oke masuk ke pembahasan, kita akan melakukan konfigurasi sebuah framework PHP yaitu Laravel versi 8. Kita akan menggunakan database MySQL dan PHP versi 7.3.
Install PHP
Tambahkan dan instal PHP 7.3 PPA repository
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.3
Verifikasi versi php yang sudah terinstal dengan perintah
php -v
Output:
PHP 7.3.33-1+ubuntu20.04.1+deb.sury.org+1 (cli) (built: Nov 19 2021 06:25:05) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.33, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.33-1+ubuntu20.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
Menginstal Modul PHP 7.3 yang Diperlukan
Laravel membutuhkan banyak modul. Anda dapat menginstalnya menggunakan perintah berikut:
sudo apt-get install php7.3 php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-mysql php7.3-mbstring php7.3-mcrypt php7.3-zip php7.3-fpm php7.3-xml
Install MySQL Database
Jalankan perintah:
sudo apt-get install php7.3-mysql
sudo apt-get install mysql-server
Konfigurasi mysql dengan menjalankan perintah:
sudo mysql_secure_installation
Sekarang kita akan disajikan dengan beberapa petunjuk.
Untuk local dev environment, saya biarkan tidak memakai ’Validate Password Plugin
’.
Kita akan diminta memasukkan kata sandi untuk pengguna root
.
Dari sana hapus pengguna anonim, larang pengguna root
dari akses jarak jauh, dan hapus test database.
Ketika diminta untuk reload privilege tables
pilih yes.
Buat Pengguna Non-root Dengan Hak Akses Root
Login ke database MySQL sebagai root
sudo mysql -u root -p
Kemudian, jalankan perintah berikut untuk membuat userbaru bernama admin
CREATE USER 'admin'@'localhost' IDENTIFIED BY '';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Selanjutnya keluar dari MySQL CLI
mysql> exit
Test pengguna baru dengan masuk sebagai admin tanpa menggunakan sudo.
mysql -u admin
Jika berhasil maka akan muncul
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.27-0ubuntu0.20.04.1 (Ubuntu)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>_
Keluar dari MySql dan kita akan melanjutkan untuk menginstal Composer.
mysql>exit
Untuk mengimport data dari file sql t(pastikan databse sudah dibuat terlebih dahulu) dan lakukan perintah berikut di terminal:
$ mysql -u USER -p NAMA_DATABASE < PATH/TO/FILE.sql
Untuk mengeceknya bisa masuk ke mysql dengan user tersebut
$ mysql -u USER
mysql> USE database_name;
mysql> SHOW tables;
Install Composer
Pertama, kita perlu memperbarui package manager kita.
sudo apt update
Sekarang kita akan menginstal beberapa dependensi yang diperlukan untuk instalasi Composer.
curl
untuk mengunduh Komposer
php-cli
diperlukan untuk menjalankan instalasi
php-mbstring
menyediakan fungsi untuk perpustakaan yang digunakan
git
akan memungkinkan Composer mengunduh dependensi proyek
unzip
untuk membuka zip
sudo apt install curl php-cli php-mbstring git unzip
Dengan itu, kita dapat mengunduh installer Composer. Mulailah dengan pindah ke direktori home.
cd ~
Kemudian download installer Composer menggnakan curl.
curl -sS https://getcomposer.org/installer -o composer-setup.php
Sebelum kita instal kita perlu cek apakah installernya corrupt atau tidak serta memverifikasi bahwa installer yang kita download itu tidak di modifikasi dengan mengecek file Hash dan kita samakan dengan yang ada di webnya.
Buka Link https://composer.github.io/pubkeys.html dan temukan ‘Installer Checksum (SHA-384)’
Gunakan signature dan jalankan perintah berikut untuk memverifikasi installer yang sudah kita download.
HASH=isikan_hash_yang_ada_di_web
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Harusnya Outpus sebagai berikut:
Installer verified
jika tidak, kita harus download ulang installer dan melakukan langkah verifikasi lagi.
Jalankan Installer
Intall Composer secara global pada sistem.
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Ketika sudah berhasil, ubah permission dari direktori composer
sudo chown -R $USER ~/.composer/
Verifikasi Bahwa Composer Sudah Terinstall
⚠️Jangan jalankan komposer sebagai root menggunakan sudo ️⚠️
jalankan
composer
Outputnya:
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.2.1 2021-12-22 22:21:31
Mari Install Laravel
Unduh installer Laravel menggunakan Composer.
composer global require laravel/installer
Sekarang kita perlu memperbarui Linux $PATH
echo 'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> ~/.bashrc
Setelah memperbarui $PATH
tutup terminal dan buka yang baru.
Coba Hello, World
Mari jalankan aplikasi Laravel boilerplate di localhost kita. Pertama kita perlu membuat database yang akan kita sambungkan. Masuk ke MySQL melalui terminal menggunakan pengguna admin yang telah dibuat sebelumnya.
mysql -u admin
Kemudian buat database
CREATE DATABASE cobalaravel;
Buat project Laravel
laravel new coba-laravel
coba-laravel
hanyalah nama aplikasi jadi beri nama apa pun yang kita suka.
Setelah ini selesai cd ke direktori baru untuk aplikasi Anda.
cd coba-laravel
Pada titik ini kita perlu memberi tahu aplikasi Laravel cara terhubung ke database kita.
Untuk ini kita akan mengedit file .env
di root aplikasi.
sudo nano .env
Ubah pada bagian database dan sesuaikan dengan database kita menjadi seperti berikut:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=cobalaravel
DB_USERNAME=admin
DB_PASSWORD=
Kemudian save.
Sekarang kita perlu menguji koneksi ke database.
Untuk ini kita akan mengedit /routes/web.php
Seharusnya terlihat seperti
Route::get('/', function () {
try {
DB::connection()->getPdo();
$caught = false;
} catch (Exception $e) {
$caught = true;
die("Could not connect to the database. Please check your configuration. error:" . $e );
}
if(!$caught){
echo 'Hello, world.';
}
});
Sekarang jalankan server dengan perintah
php artisan serve
Output:
Laravel development server started: <http://127.0.0.1:8000>
Sekarang Anda dapat memeriksanya di browser http://127.0.0.1:8000 Kita akan melihat ‘Hello, world.’. tamopil di layar menandakan koneksi berhasil ke database.
Jika ada pesan error sebagai berikut
Illuminate\Database\QueryException : SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client (SQL: select * from information_schema.tables where table_schema = ota_points and table_name = migrations)
Kita perlu masuk ke MySQL sebagai root kemudian jalankan
ALTER USER 'username-yang-digunakan-dilaravel'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Biarkan password
kosong jika tidak ingin menggunakan password.
Gunakan username ini di file env laravel kita untuk database MYSQL.
Semoga bermanfaat.