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.3Verifikasi versi php yang sudah terinstal dengan perintah
php -vOutput:
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-xmlInstall MySQL Database
Jalankan perintah:
sudo apt-get install php7.3-mysql
sudo apt-get install mysql-serverKonfigurasi mysql dengan menjalankan perintah:
sudo mysql_secure_installationSekarang 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 -pKemudian, 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> exitTest pengguna baru dengan masuk sebagai admin tanpa menggunakan sudo.
mysql -u adminJika 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>exitUntuk 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.sqlUntuk 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 updateSekarang 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 unzipDengan 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.phpSebelum 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_webphp -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 verifiedjika 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=composerKetika 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
composerOutputnya:
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.2.1 2021-12-22 22:21:31
Mari Install Laravel
Unduh installer Laravel menggunakan Composer.
composer global require laravel/installerSekarang kita perlu memperbarui Linux $PATH
echo 'export PATH="$PATH:$HOME/.composer/vendor/bin"' >> ~/.bashrcSetelah 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 adminKemudian buat database
CREATE DATABASE cobalaravel;Buat project Laravel
laravel new coba-laravelcoba-laravel hanyalah nama aplikasi jadi beri nama apa pun yang kita suka.
Setelah ini selesai cd ke direktori baru untuk aplikasi Anda.
cd coba-laravelPada 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 .envUbah 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 serveOutput:
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.