Kalau trafik aplikasi Laravel Anda mulai naik, shared hosting sering terasa lambat dan terbatas. Solusinya: pindah ke VPS. Artikel ini memandu Anda deploy Laravel ke VPS Ubuntu memakai Nginx dan PHP-FPM, langkah demi langkah, cocok untuk yang baru pertama kali memakai VPS.
Prasyarat
- VPS dengan Ubuntu (mis. 22.04) dan akses SSH root/sudo.
- Domain yang sudah diarahkan (A record) ke IP VPS.
- Project Laravel Anda (idealnya sudah ada di repository Git).
Langkah 1: Update Server & Install Paket Dasar
sudo apt update && sudo apt upgrade -y
sudo apt install -y nginx git unzip curl
Langkah 2: Install PHP & Ekstensi Laravel
Pasang PHP-FPM beserta ekstensi yang dibutuhkan Laravel:
sudo apt install -y php-fpm php-cli php-mysql php-mbstring \
php-xml php-bcmath php-curl php-zip php-gd
Cek versi PHP untuk dipakai di konfigurasi Nginx nanti:
php -v
Langkah 3: Install Composer
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Langkah 4: Ambil Kode Aplikasi
cd /var/www
sudo git clone https://github.com/user/project.git laravel_app
cd laravel_app
composer install --optimize-autoloader --no-dev
Langkah 5: Konfigurasi .env
cp .env.example .env
php artisan key:generate
nano .env # isi APP_URL, DB_DATABASE, DB_USERNAME, DB_PASSWORD, dll
Set APP_ENV=production dan APP_DEBUG=false. Lalu jalankan migrasi:
php artisan migrate --force
Langkah 6: Atur Permission
Beri kepemilikan folder ke user Nginx (www-data) dan izin tulis pada folder yang diperlukan:
sudo chown -R www-data:www-data /var/www/laravel_app
sudo chmod -R 775 /var/www/laravel_app/storage /var/www/laravel_app/bootstrap/cache
Langkah 7: Buat Server Block Nginx
Buat file konfigurasi baru:
sudo nano /etc/nginx/sites-available/laravel_app
Isi dengan konfigurasi berikut (sesuaikan domain dan versi PHP-FPM):
server {
listen 80;
server_name domainanda.com www.domainanda.com;
root /var/www/laravel_app/public;
index index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
Perhatikan baris root menunjuk ke folder public, dan fastcgi_pass harus cocok dengan versi PHP-FPM Anda.
Langkah 8: Aktifkan Situs & Reload Nginx
sudo ln -s /etc/nginx/sites-available/laravel_app /etc/nginx/sites-enabled/
sudo nginx -t # tes konfigurasi
sudo systemctl reload nginx
Aplikasi Anda kini seharusnya bisa diakses lewat domain.
Langkah 9: Pasang HTTPS Gratis (Let's Encrypt)
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d domainanda.com -d www.domainanda.com
Certbot otomatis mengatur sertifikat SSL dan memperbaruinya secara berkala.
Langkah 10: Optimasi Production
php artisan config:cache
php artisan route:cache
php artisan view:cache
Troubleshooting Singkat
- 502 Bad Gateway: path
fastcgi_passsalah โ cek nama socket PHP-FPM (ls /var/run/php/). - 500 / layar putih: cek permission
storage& log distorage/logs/laravel.log. - 403 Forbidden: pastikan
rootmenunjuk ke folderpublic, bukan root project.
Kesimpulan
Deploy Laravel ke VPS Ubuntu dengan Nginx memberi Anda performa dan kontrol jauh lebih besar dibanding shared hosting. Kuncinya: install PHP-FPM + ekstensi, arahkan root Nginx ke folder public, atur permission, lalu pasang HTTPS. Sekali terbiasa, proses ini bisa diselesaikan dalam 15โ20 menit untuk deployment berikutnya.