
Langkah-langkah Deploy Laravel di Debian Server menggunakan web server Nginx
Pada artikel ini, kita akan membahas langkah-langkah untuk melakukan deploy aplikasi web dengan framework Laravel 9.x di server Debian. Proses ini akan mencakup instalasi server web Nginx, setup firewall, instalasi PHP 8.0 FPM, dan MySQL. Selain itu, kita juga akan memasukkan langkah-langkah untuk mengatur DNS dan SSL menggunakan Certbot.
Langkah Pertama: Update dan Upgrade
Langkah pertama yang harus dilakukan adalah memastikan sistem Debian terbaru dengan menjalankan perintah berikut:
sudo apt-get update
sudo apt-get upgrade
Langkah Kedua: Instalasi Web Server Nginx
Selanjutnya, instal Nginx sebagai server web yang akan digunakan:
sudo apt install nginx
Langkah Ketiga: Instalasi UFW Firewall
Pasang dan konfigurasi UFW (Uncomplicated Firewall) untuk mengamankan server:
sudo apt install ufw -y
sudo ufw allow 'Nginx HTTP'
sudo ufw allow 443
sudo ufw allow 22
sudo ufw enable
sudo systemctl status ufw
Langkah Keempat: Setup Pointing DNS
Tambahkan setup DNS dengan mengedit konfigurasi DNS berikut:
Name: @
Type: A
TTL: 14400
RDATA: ip public VPS
Pastikan untuk mengganti IP Public VPS dengan alamat IP Publik server anda.
Langkah Kelima: Instalasi PHP 8.0 FPM
Instal PHP 8.0 FPM dan beberapa ekstensi yang diperlukan oleh Laravel :
sudo apt update
sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
sudo wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -
sudo apt update
sudo apt install php8.0-fpm
php -v
sudo apt install php8.0-common php8.0-mysql php8.0-xml php8.0-curl php8.0-gd php8.0-imagick php8.0-cli php8.0-dev php8.0-imap php8.0-mbstring php8.0-opcache php8.0-soap php8.0-zip -y
sudo service php8.0-fpm status
Langkah Keenam: Instalasi Composer
Pasang Composer untuk mengelola dependensi proyek Laravel :
cd ~
curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php
HASH=`curl -sS https://composer.github.io/installer.sig`
echo $HASH
php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
composer
Langkah Ketujuh: Instalasi MySQL
Unduh dan instal MySQL serta konfigurasinya :
wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb
sudo apt install ./mysql-apt-config_0.8.22-1_all.deb
sudo apt update
sudo apt install mysql-server
atau bisa menggunakan
sudo apt install default-mysql-server
Pilih salah satu CLI untuk menginstall MySQL
sudo service mysql status
sudo mysql_secure_installation
mysql -u root -p
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, INDEX, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'username'@'localhost' WITH GRANT OPTION;
exit
systemctl status mysql.service
Pastikan untuk mengganti username dan password sesuai dengan preferensi Anda.
Langkah Kedelapan: Instalasi Git
Instal Git untuk memudahkan manajemen versi :
sudo apt install git
Langkah Kesembilan: Deploy Project
Unduh proyek menggunakan Git dan pindahkan ke direktori web server :
git clone url-git-project.git
sudo mv url-git-project /var/www/webapp
cd /var/www/webapp
sudo nano .env
sudo chmod -R ugo+rw storage
sudo chmod -R ugo+rw bootstrap/cache
composer install
php artisan config:cache
php artisan event:cache
php artisan route:cache
php artisan view:cache
sudo nano /etc/nginx/sites-available/webapp
sudo ln -s /etc/nginx/sites-available/webapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Pastikan untuk mengganti url-git-project.git dengan URL Git proyek Anda.
Langkah Kesepuluh: Setup SSL
Pasang Certbot dan konfigurasikan SSL menggunakan Certbot :
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com
Gantilah example.com dengan domain Anda sendiri.
Dengan demikian, Anda telah menyelesaikan langkah-langkah untuk mendeploy aplikasi Laravel 9.x menggunakan framework Laravel di server Debian. Dengan mengikuti langkah-langkah ini, Anda akan memiliki aplikasi web Laravel yang berjalan di server Anda.
sudo certbot renew --dry-run
sudo certbot renew --dry-run adalah perintah yang digunakan untuk memperbarui sertifikat SSL dengan Certbot dalam mode "dry-run". Mode "dry-run" digunakan untuk menguji pembaruan sertifikat tanpa benar-benar memperbarui atau memperpanjang sertifikat yang ada. Ini berguna untuk mengidentifikasi masalah potensial atau kesalahan konfigurasi sebelum Anda melakukan pembaruan sertifikat yang sebenarnya. Di bawah ini adalah penjelasan lebih rinci tentang perintah ini:
1. sudo : Ini adalah perintah yang digunakan untuk menjalankan perintah sebagai superuser atau dengan hak akses administratif. Anda perlu memiliki izin administratif untuk memperbarui sertifikat SSL.
2. certbot : Certbot adalah perangkat lunak yang digunakan untuk mengotomatisasi pengelolaan sertifikat SSL. Ini memungkinkan Anda untuk meminta, memperbarui, dan menginstal sertifikat SSL dengan mudah.
3. renew : Ini adalah sub-perintah Certbot yang digunakan untuk memperbarui sertifikat SSL yang sudah ada. Ketika Anda menjalankan perintah ini, Certbot akan memeriksa semua sertifikat SSL yang sudah ada dan mencoba memperbarui yang mana yang akan segera berakhir.
4. --dry-run : Opsi ini mengaktifkan mode "dry-run". Dalam mode ini, Certbot akan mencoba memperbarui sertifikat SSL, tetapi tidak akan mengubah sertifikat yang ada. Ini berguna untuk menguji apakah pembaruan akan berjalan dengan sukses atau jika ada masalah yang perlu diperbaiki sebelum pembaruan sebenarnya.
Jadi, ketika Anda menjalankan perintah `sudo certbot renew --dry-run`, Certbot akan mencoba memperbarui sertifikat SSL yang sudah ada dalam mode uji coba tanpa membuat perubahan aktual pada sertifikat. Hasil dari operasi ini akan memberikan informasi tentang apakah pembaruan berjalan lancar atau jika ada masalah yang perlu diatasi sebelum Anda menjalankan perintah untuk pembaruan sertifikat yang sebenarnya.
Pastikan untuk melakukan penyesuaian yang diperlukan sesuai dengan kebutuhan spesifik Anda dan selalu merujuk pada dokumentasi resmi Laravel dan Debian untuk informasi lebih lanjut.