Apa yang bisa kami bantu?

A. Pendahuluan

Error 500 Internal Server Error adalah kesalahan umum yang terjadi ketika server baik Nginx maupun Apache mengalami masalah saat memproses permintaan Anda. Ini adalah error generik yang tidak menyebutkan detail kenapa terjadi, sehingga bisa membuat frustasi. Namun, jangan khawatir. Artikel ini akan membantu Anda mengatasi masalah tersebut dengan langkah-langkah sistematis dan mudah diikuti.

Gambar 1. Error 500

B. Cara Mengatasi

Berikut adalah panduan lengkap dalam beberapa langkah. Silakan ikuti dengan saksama agar bisa menemukan dan memperbaiki sumber 'Error 500' pada web server Anda.

 

1. Periksa Log Error

Log adalah sumber informasi utama. Tanpa melihat log, kita hanya menebak-nebak penyebab error. Log akan menunjukkan pesan spesifik apakah masalah karena konfigurasi, file PHP, permission, atau resource. Jadi ini langkah pertama yang wajib agar perbaikan tidak salah arah.

 

Apache:

sudo tail -n 50 /var/log/apache2/error.log

Nginx:

sudo tail -n 50 /var/log/nginx/error.log

Baca entri terakhir dan catat informasi penting seperti konfigurasi yang gagal, script PHP error, atau permission issue.

Gambar 2. Contoh pengecekan log Error pada nginx 

 

2. Validasi Konfigurasi Web Server

File konfigurasi di Apache (apache2.conf, sites-available/) atau Nginx (nginx.conf, sites-available/) sangat sensitif terhadap kesalahan syntax. Bahkan satu karakter salah bisa langsung membuat server gagal memproses request dan menampilkan error 500. Dengan validasi (apachectl configtest / nginx -t), kita bisa memastikan konfigurasi sudah benar sebelum dipakai server.

 

Apache:

sudo apachectl configtest

 

Nginx:

sudo nginx -t
Gambar 3. Cek konfigurasi pada Nginx



Jika ada error syntax, perbaiki pada file konfigurasi terkait. dan setelah perbaikan pastikan melakukan reload service 

 

Apache:

sudo systemctl reload apache2   

 

Nginx:

sudo systemctl reload nginx

 

3. Periksa Permission File & Folder

Web server hanya bisa membaca file atau folder jika memiliki izin (permission) yang sesuai. Jika permission terlalu ketat (misalnya 600 untuk file web), server tidak bisa membacanya hasilnya error 500. Sebaliknya, jika permission terlalu longgar (misalnya 777), ini berbahaya karena membuka celah keamanan. Jadi pengecekan permission penting agar server bisa bekerja normal sekaligus tetap aman.

 

Pastikan folder permission 755 dan file 644:

sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;

 

Pastikan owner sesuai user web server (biasanya www-data):

sudo chown -R www-data:www-data /var/www/html

*untuk path folder dapat berbeda beda, untuk syntax diatas hanya secara global, namun pada gambar berikut untuk pengecekan di nginx untuk path /var/www/namadomainanda/html/ dan user ubuntu

Gambar 4. Ubah permission folder 

 

 

4. Periksa .htaccess (Hanya untuk Apache)

.htaccess adalah file yang bisa mengubah aturan server secara langsung (misalnya redirect, rewrite, proteksi folder). Kesalahan penulisan satu baris aturan saja bisa membuat Apache bingung memproses request sehingga muncul error 500. Karena itu, pengecekan .htaccess sangat penting, apalagi di website berbasis CMS (WordPress, Joomla, dsb.) yang sering menggunakannya.

 

1. Buka .htaccess di root situs Anda.
2. Tambahkan # pada bagian yang dicurigai.
3. Simpan lalu reload Apache:

sudo systemctl reload apache2

4. Jika error hilang, berarti aturan di .htaccess bermasalah.

 

5. Cek Versi PHP & Modul yang Dibutuhkan

Banyak website modern bergantung pada PHP dan modul-modulnya. Jika modul (contoh: php-mysql untuk koneksi database) tidak tersedia, website akan gagal berjalan. Kadang juga versi PHP terlalu lama/tidak kompatibel dengan kode website. Akibatnya, server akan mengembalikan error 500. Dengan mengecek PHP, kita memastikan lingkungan sesuai dengan kebutuhan website.

 

Periksa versi PHP:

php -v

 

Restart server setelah instalasi:

Apache: 

sudo systemctl restart apache2

 

Nginx:

sudo systemctl restart nginx

 

6. Tinjau Limit Resource Server

Server yang kehabisan resource (RAM, CPU, storage) tidak bisa memproses permintaan dengan baik. Misalnya, jika script PHP butuh memory lebih besar dari memory_limit di php.ini, maka eksekusinya gagal dan memicu error 500. Begitu juga bila proses terlalu lama melebihi max_execution_time. Pengecekan ini penting agar server punya kapasitas cukup untuk menjalankan aplikasi dengan lancar.

 

Pengecekan CPU

top

 

Pengecekan Storage

sudo df -hT

 

Pengecekan Ram

free -m

Jika salah satu resource penuh maka anda dapat mepertimbangkan untuk upgrade layanan 

 

7. Restart Web Server

Setelah perbaikan dilakukan (baik itu konfigurasi, permission, atau resource), perubahan tidak akan aktif sebelum layanan server di-reload/restart. Dengan restart, server memuat ulang konfigurasi dan setting baru. Ini memastikan semua perbaikan benar-benar diterapkan dan error 500 bisa teratasi.

 

Apache:

sudo systemctl restart apache2

 

Nginx:

sudo systemctl restart nginx

 

C. Kesimpulan

Dalam artikel ini, Anda telah mempelajari cara sistematis mengatasi Error 500 pada Nginx maupun Apache:

  1. Periksa log error untuk petunjuk penyebab.
  2. Validasi konfigurasi server dengan configtest atau nginx -t.
  3. Periksa permission file dan folder.
  4. Koreksi .htaccess jika di Apache.
  5. Pastikan modul PHP terpasang.
  6. Cek resource server dan sesuaikan memory limit.
  7. Restart web server untuk menerapkan perubahan.

Dengan pendekatan ini, Anda bisa mendapat diagnosis yang lebih jelas sekaligus solusi yang efektif bila error muncul lagi. 

 

Semoga artikel ini dapat membantu Anda. Temukan bantuan lainnya melalui Knowledge Base Biznet Gio. Jika Anda masih memiliki kendala silakan hubungi Support Biznet GIO melalui email support@biznetgio.com atau live chat maupun WA ke website www.biznetgio.com dan bisa juga melalui telepon ke nomor (021) 5714567.