Cara Deploy Laravel di Server Ubuntu (Nginx, PHP 8.1, Mysql)
Install Nginx
Langkah pertama yang harus dilakukan adalah menginstall Nginx. Nginx adalah web server yang akan digunakan untuk mengakses aplikasi Laravel. Untuk menginstall Nginx, jalankan perintah berikut:
sudo apt update
sudo apt install nginx
Setelah selesai, jalankan perintah berikut untuk memastikan Nginx sudah berjalan:
sudo systemctl status nginx
Aktifkan UFW untuk mengizinkan akses ke Nginx. UFW adalah firewall yang sudah terinstall secara default di Ubuntu. Kamu bisa mengaktifkan UFW dengan menjalankan perintah berikut:
sudo ufw allow 'Nginx HTTP'
Kamu bisa mengecek status UFW dengan menjalankan perintah berikut:
sudo ufw status
Command tersebut akan menampilkan output seperti berikut:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
Coba akses Nginx melalui browser dengan mengunjungi alamat IP server kamu. Jika berhasil, kamu akan melihat halaman Nginx seperti berikut:
Install Mysql
Langkah selanjutnya adalah menginstall Mysql. Mysql adalah database yang akan digunakan untuk menyimpan data aplikasi Laravel. Untuk menginstall Mysql, jalankan perintah berikut:
sudo apt install mysql-server
Setelah proses instalasi selesai, jalankan perintah berikut untuk menjalankan script security, script ini akan mengamankan instalasi Mysql kamu:
sudo mysql_secure_installation
Kamu akan diminta untuk mengisi password root Mysql. Isi password yang kamu inginkan, lalu jawab pertanyaan yang muncul dengan Y atau Yes.
Setelah selesai, kamu bisa menguji koneksi Mysql dengan menjalankan perintah berikut:
sudo mysql
Jika berhasil, kamu akan masuk ke command line Mysql seperti berikut:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.25-0ubuntu0.20.04.1 (Ubuntu)
Keluar dari command line Mysql dengan menjalankan perintah berikut:
exit
Install PHP
Langkah selanjutnya adalah menginstall PHP. PHP adalah bahasa pemrograman yang akan digunakan untuk membuat aplikasi Laravel. Untuk menginstall PHP, jalankan perintah berikut:
Sebelum menginstall PHP, tambahkan repository PHP 8.1 dengan menjalankan perintah berikut:
sudo apt install ca-certificates apt-transport-https software-properties-common
sudo add-apt-repository ppa:ondrej/php
Untuk memastikan repository sudah terinstall, jalankan perintah berikut:
sudo grep -rhE ^deb /etc/apt/sources.list* | grep -i ondrej
Selanjutnya update package list dengan menjalankan perintah berikut:
sudo apt update
Setelah proses update selesai, kamu bisa menginstall PHP dengan menjalankan perintah berikut:
sudo apt install php8.1 php-fpm php-mysql
Setelah proses instalasi selesai, jalankan perintah berikut untuk memastikan PHP sudah berjalan:
php -v
Konfigurasi Nginx
Pertama, buat project laravel baru, atau clone project laravel yang sudah ada. Untuk membuat project baru, jalankan perintah berikut:
composer create-project --prefer-dist laravel/laravel project_kamu
Tambahkan akses ke folder project dengan menjalankan perintah berikut:
sudo chown -R www-data.www-data /var/www/project_kamu/storage
sudo chown -R www-data.www-data /var/www/project_kamu/bootstrap/cache
Langkah selanjutnya adalah mengkonfigurasi Nginx. Untuk mengkonfigurasi Nginx, buat file baru dengan menjalankan perintah berikut:
sudo vim /etc/nginx/sites-available/project_kamu
Kemudian isi file tersebut dengan konfigurasi berikut:
server {
listen 80;
server_name your_domain www.your_domain;
root /var/www/your_domain;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Ganti `your_domain` dengan domain kamu. Jika kamu tidak memiliki domain, kamu bisa menggunakan IP server kamu.
Kemudian atur link simbolik dengan menjalankan perintah berikut:
sudo ln -s /etc/nginx/sites-available/project_kamu /etc/nginx/sites-enabled/
Untuk memastikan tidak ada error pada konfigurasi Nginx, jalankan perintah berikut:
sudo nginx -t
Jika tidak ada error, reload Nginx dengan menjalankan perintah berikut:
sudo systemctl reload nginx