Kadang saya menjumpai ketika sebuah situs diakses dia mengeluarkan error 500. Sulit bagi developer untuk mentraking error ini. Yang jelas, inis ebuah pemberitahuan jika ada error pada situs. kalau saya sih biasanya karena saya edit file php-nya dan ada kesalahan sintak 🙂
Saya bertanya ke openAI tentang masalah ini. Dan yang paling penting adalah bagaimana saya bisa mencari error detailnya.
Untuk mendiagnosis HTTP Error 500 pada server dengan Nginx dan PHP-FPM, Anda perlu memeriksa log error dan konfigurasi terkait. Berikut langkah-langkahnya:
1. Periksa Log Nginx
Nginx memiliki file log untuk mencatat kesalahan. Cari file log error di lokasi yang biasanya diatur di file konfigurasi Nginx, seperti:
- Lokasi Default Log Nginx:
/var/log/nginx/error.log
/var/log/nginx/access.log
- Periksa Error Log: Jalankan perintah berikut untuk melihat log terbaru:
tail -f /var/log/nginx/error.log
- Jika Anda menggunakan virtual host untuk
app.mysite.com
, log error mungkin terpisah. Cek file konfigurasi Nginx untuk domain tersebut:sudo nano /etc/nginx/sites-available/app.mysite.com
Cari baris seperti:
error_log /path/to/your/error.log;
Dan periksa file log yang disebutkan.
2. Periksa Log PHP-FPM
PHP-FPM mencatat kesalahan eksekusi PHP. File lognya biasanya berada di:
- Lokasi Default Log PHP-FPM:
/var/log/php7.4-fpm.log
(ganti7.4
dengan versi PHP Anda)/var/log/php-fpm/error.log
- Lihat Log PHP-FPM: Jalankan:
tail -f /var/log/php7.4-fpm.log
Jika log PHP-FPM tidak memberikan detail yang cukup, aktifkan log kesalahan di file konfigurasi PHP:
- Edit file
php.ini
:sudo nano /etc/php/7.4/fpm/php.ini
Aktifkan pengaturan berikut:
display_errors = On log_errors = On error_log = /var/log/php_errors.log
- Restart PHP-FPM:
sudo systemctl restart php7.4-fpm
3. Periksa Konfigurasi Nginx
Pastikan konfigurasi Nginx untuk aplikasi Anda benar, terutama bagian location
untuk file PHP. Contoh konfigurasi yang umum:
server {
server_name app.mysite.com
; root /var/www/app1; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } error_log /var/log/nginx/app1_error.log; access_log /var/log/nginx/app1_access.log; }
Setelah mengedit file konfigurasi, cek sintaksnya dan reload Nginx:
sudo nginx -t
sudo systemctl reload nginx
4. Tes Permintaan Manual
Jalankan script PHP sederhana untuk memastikan PHP-FPM bekerja:
- Buat file
info.php
di root aplikasi:echo "<?php phpinfo(); ?>" > /var/www/app/info.php
- Akses URL:
http://app.
. Jika berhasil, PHP-FPM berfungsi.mysite.com
/info.php
5. Masalah Umum
- Masalah Izin: Pastikan Nginx dan PHP-FPM memiliki akses ke file aplikasi:
sudo chown -R www-data:www-data /var/www/app sudo chmod -R 755 /var/www/app1
- Kesalahan pada Kode PHP: Jika log menunjukkan kesalahan spesifik pada file PHP, debug kode tersebut.