Jika website Laravel Anda menampilkan 500 Internal Server Error, pengunjung akan langsung menemui halaman kosong atau pesan server yang tidak informatif. Artikel ini langsung membahas penyebab paling umum dan memberikan langkah‑langkah teknis yang dapat Anda eksekusi satu per satu hingga error teratasi.
Penyebab umum error 500 pada Laravel
- Kesalahan kode (exception) yang tidak tertangani.
- Permission folder
storageataubootstrap/cacheyang tidak tepat. - Konfigurasi file
.envyang salah (misalnya DB_HOST, APP_KEY, atau APP_DEBUG). - Cache konfigurasi atau route yang korup.
- Masalah pada server web (NGINX/Apache) seperti .htaccess atau konfigurasi PHP-FPM.
Langkah-langkah mengatasi
- Langkah 1: Periksa log Laravel
Log error berada di
storage/logs/laravel.log. Jalankan perintah berikut untuk melihat baris terakhir yang mencatat error.tail -f storage/logs/laravel.logCatat pesan exception yang muncul; biasanya memberi petunjuk file atau baris kode yang menyebabkan 500.
- Langkah 2: Perbaiki permission folder penting
Laravel membutuhkan hak akses tulis pada
storagedanbootstrap/cache. Terapkan permission yang direkomendasikan:chmod -R 775 storage bootstrap/cache chown -R www-data:www-data storage bootstrap/cacheJika server menggunakan user lain, sesuaikan
www-datadengan user yang menjalankan PHP. - Langkah 3: Validasi file .env
Pastikan variabel penting terisi benar. Contoh minimal .env yang diperlukan:
APP_NAME=Laravel APP_ENV=production APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx APP_DEBUG=false APP_URL=https://contoh.com DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=nama_database DB_USERNAME=user_db DB_PASSWORD=rahasia_dbJika masih dalam tahap debugging, ubah
APP_DEBUG=truesementara untuk menampilkan pesan error yang lebih detail. - Langkah 4: Bersihkan dan rebuild cache Laravel
Cache yang korup dapat memicu 500. Jalankan urutan perintah berikut:
php artisan config:clear php artisan cache:clear php artisan route:clear php artisan view:clear php artisan config:cachePerintah
composer dump-autoloadjuga membantu bila ada perubahan pada autoload.composer dump-autoload - Langkah 5: Restart layanan PHP dan web server
Setelah perubahan konfigurasi, restart service agar perubahan diterapkan.
systemctl restart php7.4-fpm # sesuaikan versi PHP systemctl restart nginx # atau apache2 jika memakai Apache - Langkah 6: Cek konfigurasi server (NGINX/Apache)
Untuk NGINX, pastikan blok server mengarahkan ke
public/index.phpdan tidak ada aturan yang memblokir request.server { listen 80; server_name contoh.com www.contoh.com; root /var/www/laravel/public; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; } }Jika menggunakan Apache, pastikan file
.htaccessberada di folderpublicdengan isi standar Laravel:RewriteEngine On RewriteRule ^(.*)$ public/$1 [L]Setelah memastikan konfigurasi, reload server:
systemctl reload nginx # atau apache2
“Tim AN Media selalu mengedepankan pendekatan diagnostik berbasis log dan permission sebelum melakukan perubahan konfigurasi besar. Dengan mengikuti langkah di atas, sebagian besar kasus 500 Internal Server Error pada Laravel dapat teratasi dalam hitungan menit.” – Senior Engineer, AN Media
Jika setelah semua langkah di atas error masih muncul, kemungkinan ada masalah pada kode custom atau dependensi pihak ketiga. Kami siap membantu melakukan audit kode dan optimasi server. Hubungi AN Media sekarang untuk layanan konsultasi, pemeliharaan, atau pengembangan Laravel yang handal.