
Cara Efektif: Deploy Laravel di Ubuntu Server untuk Proyek Pengembangan Web
Pada artikel ini, kita akan membahas langkah-langkah untuk melakukan deploy web aplikasi yang di buat dengan framework Laravel menggunakan Ubuntu Server sebagai operasi sistem. Kami akan menjelaskan setiap langkah dengan detail dan memberikan instruksi yang jelas. Jadi, mari kita mulai.
Spesifikasi :
- Laravel 10.x
- PHP 8.2
- Database MySQL
- Web Server Nginx
- Operasi Sistem Ubuntu Server
Langkah 1 : Pembaruan dan Peningkatan Server
Langkah pertama yang perlu dilakukan adalah memperbarui dan meningkatkan server Ubuntu. Ini memastikan bahwa server Anda memiliki semua pembaruan keamanan terbaru dan perangkat lunak yang diperlukan.
sudo apt-get update
sudo apt-get upgrade -y
Langkah 2 : Instalasi Nginx
Nginx adalah server web yang cepat dan ringan yang akan digunakan untuk menghosting web aplikasi yang di buat dengan framework Laravel.
sudo apt install nginx -y
Langkah 3: Konfigurasi Firewall
Pada langkah ini, kita akan mengonfigurasi firewall UFW untuk mengizinkan akses ke Nginx dan port lain yang diperlukan.
sudo ufw allow 'Nginx HTTP'
sudo ufw allow 443/tcp
sudo ufw allow 22
sudo ufw enable
sudo systemctl status ufw
Langkah 4: Pengaturan DNS Record
Pada langkah ini, kita akan mengatur DNS record pada domain yang Anda sewa. Pastikan untuk mengganti "ip public VPS" dengan alamat IP publik VPS Anda.
Add DNS setup
Name: @
Type: A
TTL: 14400
RDATA: ip public VPS
Langkah 5: Instalasi PHP 8.2
Laravel membutuhkan PHP untuk berjalan. Di sini, kita akan menginstal PHP 8.0 dan beberapa ekstensi yang diperlukan.
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2-fpm
php-fpm8.2 -v
sudo apt install php8.2-common php8.2-mysql php8.2-xml php8.2-curl php8.2-gd php8.2-imagick php8.2-cli php8.2-dev php8.2-imap php8.2-mbstring php8.2-opcache php8.2-soap php8.2-zip -y
sudo service php8.2-fpm status
Langkah 6: Instalasi Composer
Composer digunakan untuk mengelola dependensi pada 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 7: Instalasi MySQL
MySQL adalah sistem manajemen basis data pada umumnya yang digunakan oleh aplikasi yang di buat dengan framework Laravel.
sudo apt install mysql-server
sudo systemctl start mysql.service
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
exit
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
mysql -u username -p
exit
sudo systemctl status mysql.service
Langkah 8: Deployment Proyek Laravel
Sekarang, kita akan mendeploy proyek Laravel ke 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 --optimize-autoloader --no-dev
php artisan config:cache
php artisan event:cache
php artisan route:cache
php artisan view:cache
sudo nano /etc/nginx/sites-available/webapp
isi dengan konfigurasi Nginx :
server {
listen 80;
listen [::]:80;
server_name example.com;
root /var/www/webapp/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
index index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
sudo ln -s /etc/nginx/sites-available/webapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Langkah 9: Setup SSL
Terakhir, kita akan mengatur sertifikat SSL menggunakan Certbot untuk mengaktifkan HTTPS pada blog.
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com
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.
Sampai di sini, Anda telah berhasil mendeploy aplikasi yang di buat dengan framework Laravel di server Ubuntu dan mengkonfigurasinya dengan menggunakan langkah-langkah di atas. Pastikan untuk menyesuaikan setiap langkah dengan konfigurasi dan kebutuhan spesifik Anda. Semoga artikel ini membantu dan sukses untuk Anda!