Momen paling menegangkan bagi pemula adalah memindahkan aplikasi dari komputer ke server publik. Kabar baiknya, prosesnya bisa diulang dan diprediksi. Panduan ini membahas dua skenario paling umum: shared hosting berbasis cPanel dan VPS.
Persiapan Sebelum Unggah
- Pastikan hosting mendukung versi PHP yang dibutuhkan (cek di
composer.json). - Siapkan database produksi dan catat nama, user, serta passwordnya.
- Set
APP_ENV=productiondanAPP_DEBUG=falseuntuk keamanan.
Skenario A: Shared Hosting (cPanel)
1. Unggah file. Kompres project (tanpa folder vendor/ dan node_modules/ agar ringan), unggah lewat File Manager, lalu ekstrak. Bila hosting menyediakan akses SSH, jalankan composer install --no-dev --optimize-autoloader di server. Bila tidak, unggah juga folder vendor/ dari komputer Anda.
2. Arahkan document root ke public. Ini langkah paling sering terlewat. Laravel hanya boleh diakses lewat folder public. Ada dua cara:
- Ubah document root domain ke
.../namaproject/public(paling aman, lewat menu Domains di cPanel). - Atau letakkan isi
public/dipublic_htmldan sesuaikan path diindex.phpagar menunjuk ke folder aplikasi di atasnya.
3. Konfigurasi .env. Buat file .env di server, isi kredensial database produksi, lalu jalankan php artisan key:generate dan php artisan migrate --force (flag --force wajib di produksi).
Skenario B: VPS
Di VPS Anda memegang kendali penuh. Alurnya: pasang PHP, Composer, MySQL, dan web server (Nginx/Apache); tarik kode via Git; jalankan composer install --no-dev; atur virtual host yang menunjuk ke folder public; lalu amankan dengan sertifikat HTTPS (mis. Let's Encrypt). VPS memberi performa dan fleksibilitas lebih, dengan imbalan tanggung jawab pemeliharaan yang lebih besar.
Izin Folder yang Benar
Sumber error 500 terbanyak setelah deploy adalah izin tulis. Pastikan server bisa menulis ke dua folder ini:
chmod -R 775 storage bootstrap/cache
Sesuaikan kepemilikan folder dengan user web server bila perlu.
Optimasi Produksi
Setelah aplikasi tampil, percepat dengan meng-cache konfigurasi dan route:
php artisan config:cache
php artisan route:cache
php artisan view:cache
Jangan lupa menjalankan php artisan storage:link bila aplikasi menampilkan file unggahan dari storage.
Checklist Akhir
- Halaman utama terbuka tanpa error, HTTPS aktif.
APP_DEBUG=false— halaman error tidak membocorkan detail.- Login, pendaftaran, dan alur inti diuji langsung di produksi.
- Backup database dan file dijadwalkan.
Deploy pertama memang paling menantang. Setelah alurnya Anda kuasai, memindahkan pembaruan berikutnya hanya butuh beberapa menit.