
Pendahuluan
Bayangin lagi ngerjain fitur sederhana, tapi pas mau di-deploy ke VPS, aplikasi malah error karena server belum siap menangani request Laravel yang kompleks. Pengalaman saya, banyak rekan developer yang bisa bikin aplikasi Laravel keren secara lokal, tapi sering tersandung di urusan konfigurasi server produksi. Mengatur Nginx agar bisa ngobrol lancar dengan PHP-FPM, plus memastikan queue worker tetap hidup pakai Supervisor, adalah seni tersendiri yang wajib dikuasai kalau mau aplikasi kita nggak gampang down.
Tips & Best Practices
- Di banyak project, biasanya saya selalu mulai dengan memastikan environment .env di server sudah bersih dari sisa-sisa debug lokal seperti APP_DEBUG=true, karena ini fatal banget buat keamanan.
- Pernah kejadian di production kalau izin folder (permission) berantakan bikin storage nggak bisa tulis log, jadi selalu biasakan jalankan chown ke user www-data dan chmod 775 khusus untuk folder storage dan bootstrap/cache.
- Saya lebih suka pakai deploy script sederhana atau CI/CD ketimbang manual upload via FTP, supaya kalau ada update, kita tinggal jalanin satu perintah tanpa takut ada file yang kelewat.
Contoh Kode
Kalau kita bicara soal Supervisor, ini contoh konfigurasi yang biasa saya pakai buat mastiin worker queue Laravel jalan terus tanpa drama:
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/artisan queue:work --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=8
redirect_stderr=true
stdout_logfile=/var/www/html/storage/logs/worker.logKonfigurasi ini saya set 8 worker sekaligus supaya kalau antrian email atau notifikasi lagi numpuk, aplikasi nggak kerasa lambat.
Variasi Implementasi
Pilihan server itu beragam. Kalau aplikasi masih skala kecil, pakai VPS mungil dengan Nginx sudah cukup oke dan irit biaya. Tapi kalau traffic sudah mulai ramai, saya biasanya mulai pisahin database ke instance berbeda atau pakai Docker agar environment lebih konsisten. Menggunakan Nginx sebagai reverse proxy ke PHP-FPM terbukti lebih stabil daripada pakai Apache, terutama buat menangani ribuan concurrent request.
Kesalahan Umum
- Lupa jalanin 'php artisan config:cache', padahal ini krusial supaya Laravel nggak baca file .env berkali-kali setiap ada request masuk.
- Membiarkan error log tumpah ruah di production, yang akhirnya bikin disk server penuh dan website nggak bisa diakses sama sekali.
- Salah setting Nginx server_name, yang bikin user bingung pas akses domain tapi diarahkan ke halaman default Nginx.
- Nggak membatasi akses ke folder .git atau .env, yang jelas-jelas bisa bikin data sensitif bocor ke tangan orang iseng.
- Menggunakan versi PHP yang beda antara server lokal dan VPS; ini sering banget jadi penyebab error 'function not found' yang misterius.
Ringkasan
Deploy Laravel itu bukan cuma soal mindahin folder ke VPS, tapi soal memastikan infrastruktur kita bisa 'nafas' dan melayani user dengan stabil. Jangan bosen buat eksperimen dengan konfigurasi Nginx dan Supervisor karena di sanalah 'kedewasaan' kita sebagai developer diuji. Semoga server kalian uptime terus dan nggak kena begadang pas lagi rilis fitur baru!
Komentar
Posting Komentar