Langsung ke konten
.ai.id dibuka 5 Okt 08.00 WIB--:--:--

500 Internal Server Error: Penyebab dan Cara Mengatasinya

7 menit baca

Bagikan:
500 Internal Server Error: penyebab dan cara mengatasinya
Daftar isi6 bagian

500 Internal Server Error artinya server mengalami kondisi tak terduga sehingga tidak bisa menyelesaikan permintaan, dan server tidak punya kode error lain yang lebih tepat untuk menjelaskannya. Di website, penyebab yang paling sering adalah file .htaccess yang rusak, izin file yang salah, batas memori PHP yang habis, plugin atau tema yang bermasalah, dan error di kode PHP. Pengunjung hanya bisa memuat ulang halaman dan melapor, sedangkan pemilik website perlu membaca error log untuk menemukan penyebab pastinya.

Apa Itu 500 Internal Server Error?

Menurut dokumentasi MDN tentang kode status 500, 500 Internal Server Error adalah respons serba guna untuk masalah di server. Kode ini dikirim saat server tidak bisa menemukan kode 5xx lain yang lebih sesuai. Karena sifatnya umum, pesan error di layar hampir tidak pernah menyebut penyebabnya. Detailnya tercatat di log server.

Tampilan pesannya bisa berbeda di tiap website, misalnya:

  • 500 Internal Server Error
  • HTTP Error 500
  • Internal Server Error
  • Error 500 atau HTTP 500
  • There has been a critical error on this website (pesan bawaan WordPress saat terjadi fatal error PHP, dikirim dengan kode status 500)
  • Halaman putih kosong tanpa pesan apa pun

Beda 500 Internal Server Error dengan 502, 503, dan 504

Semua kode di bawah termasuk keluarga 5xx, yaitu error dari sisi server. Bedanya ada pada bagian mana yang gagal:

  • 500 Internal Server Error: server yang memproses permintaan mengalami error di dalam dirinya sendiri, misalnya script PHP gagal dijalankan.
  • 502 Bad Gateway: server perantara seperti Nginx atau Cloudflare menerima respons yang tidak valid dari server di belakangnya.
  • 503 Service Unavailable: server sengaja menolak permintaan untuk sementara, biasanya karena kelebihan beban atau sedang maintenance.
  • 504 Gateway Timeout: server perantara sudah menunggu terlalu lama dan server di belakangnya tidak kunjung menjawab.

Error 4xx berbeda lagi. Pada 403 Forbidden, server berjalan normal tetapi menolak akses karena aturan izin. Izin file yang salah kadang memicu 403, kadang memicu 500, tergantung konfigurasi servernya.

Penyebab 500 Internal Server Error

MDN menyebut konfigurasi server yang salah, kehabisan memori, error yang tidak ditangani di aplikasi, dan izin file yang salah sebagai penyebab umum. Di website, terutama WordPress, wujudnya biasanya seperti ini:

  • File .htaccess rusak atau berisi aturan yang salah. Dokumentasi WordPress menyebut .htaccess yang rusak sebagai penyebab yang paling mungkin. Satu baris yang salah ketik atau aturan dari plugin yang tidak didukung server sudah cukup untuk membuat Apache atau LiteSpeed mengirim error 500.
  • Izin file dan folder salah. Misalnya file PHP atau folder diberi izin yang terlalu longgar seperti 777, atau pemilik file berubah setelah migrasi.
  • Batas memori PHP habis. Plugin, tema, atau proses yang berat butuh memori lebih besar dari batas yang diatur. Di log biasanya muncul pesan Allowed memory size of ... bytes exhausted.
  • Plugin atau tema bermasalah. Error sering muncul tepat setelah memasang atau memperbarui plugin atau tema, karena kodenya bentrok dengan plugin lain atau dengan versi WordPress.
  • Error PHP. Fatal error, fungsi yang tidak dikenal, atau kode yang tidak cocok dengan versi PHP di server membuat script berhenti sebelum halaman selesai dibuat.
  • File inti WordPress rusak. Misalnya karena proses update yang terputus di tengah jalan.

Kalau masalahnya ada di koneksi ke database, WordPress biasanya menampilkan pesan lain, yaitu Error establishing a database connection, yang punya langkah penanganan sendiri.

Cara Mengatasi 500 Internal Server Error sebagai Pengunjung

Penyebab 500 Internal Server Error ada di server, jadi pengunjung tidak bisa memperbaikinya dari browser. Yang bisa kalian lakukan:

  1. Tunggu satu sampai dua menit, lalu muat ulang halaman dengan F5 atau Ctrl+R (Cmd+R di Mac). Kadang 500 Internal Server Error hanya muncul sesaat, misalnya ketika pemilik website sedang memperbarui plugin.
  2. Kalau kalian baru saja mengirim formulir atau melakukan pembayaran, jangan langsung mengirim ulang. Cek dulu email konfirmasi atau riwayat transaksi supaya tidak terjadi pesanan ganda.
  3. Kalau 500 Internal Server Error tetap muncul, beri tahu pemilik website. Sebutkan alamat halaman yang error dan jam kejadiannya.

Cara Mengatasi 500 Internal Server Error untuk Pemilik Website

Simpan backup file dan database sebelum mengubah apa pun. Urutan di bawah dimulai dari langkah yang paling cepat memberi petunjuk.

1. Baca error log

Log hampir selalu menyebut penyebab 500 Internal Server Error, lengkap dengan nama file dan nomor barisnya. Di hosting dengan cPanel, buka menu Errors, atau buka file error_log di folder website lewat File Manager. Di VPS, log umumnya ada di /var/log/apache2/error.log (Apache di Debian dan Ubuntu), /var/log/httpd/error_log (Apache di CentOS dan AlmaLinux), atau /var/log/nginx/error.log. Untuk WordPress, cek juga email admin website. Saat terjadi fatal error, WordPress mengirim email berisi detail error dan tautan untuk masuk ke mode pemulihan.

2. Aktifkan WP_DEBUG di WordPress

Kalau log server tidak cukup jelas, aktifkan log debug WordPress. Tambahkan baris berikut ke file wp-config.php, sebelum baris /* That's all, stop editing! */. Kalau baris WP_DEBUG sudah ada, cukup ubah nilainya menjadi true:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

Dengan pengaturan ini, error dicatat ke file wp-content/debug.log tanpa tampil ke pengunjung. File log di folder publik bisa dibuka orang lain, jadi kembalikan WP_DEBUG menjadi false setelah selesai dan hapus file debug.log.

3. Periksa file .htaccess

  1. Buka File Manager atau FTP, lalu masuk ke folder utama website (biasanya public_html).
  2. Ganti nama file .htaccess menjadi .htaccess_old. Aktifkan opsi tampilkan file tersembunyi kalau file ini tidak terlihat.
  3. Buka lagi website kalian. Kalau 500 Internal Server Error hilang, penyebabnya ada di .htaccess.
  4. Masuk ke dashboard WordPress, buka Settings, lalu Permalinks (Pengaturan, Permalink), dan klik Save Changes tanpa mengubah apa pun. WordPress akan membuat file .htaccess baru.

Isi .htaccess bawaan WordPress untuk satu website seperti di bawah. Aturan tambahan dari file lama bisa dipindahkan satu per satu sambil dicek, supaya baris yang bermasalah ketahuan.

# BEGIN WordPress

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

4. Periksa izin file dan folder

Panduan izin file di dokumentasi WordPress menyarankan izin 755 atau 750 untuk folder, 644 atau 640 untuk file, dan 440 atau 400 untuk wp-config.php. Jangan pernah memberi izin 777, termasuk untuk folder upload. Izin bisa diubah lewat File Manager (klik kanan, lalu Change Permissions) atau lewat FTP. Aturan izin bisa berbeda di tiap hosting, jadi tanyakan ke hosting kalau setelah diubah website justru tidak bisa dibuka.

5. Naikkan batas memori PHP

Kalau log menunjukkan pesan Allowed memory size ... exhausted, naikkan batas memori untuk WordPress lewat wp-config.php. Secara bawaan, WordPress mencoba memakai 40 MB untuk satu website dan 64 MB untuk multisite, jadi nilai yang kalian pasang harus lebih besar dari itu, misalnya:

define( 'WP_MEMORY_LIMIT', '96M' );

Di server sendiri, batas memori PHP juga bisa dinaikkan lewat nilai memory_limit di php.ini. Di shared hosting, batas memori biasanya diatur hosting, jadi minta mereka menaikkannya kalau perlu. Kalau memori tetap habis setelah batasnya dinaikkan, cari plugin atau proses yang memakan memori besar.

6. Nonaktifkan plugin dan ganti tema

  1. Lewat File Manager atau FTP, masuk ke folder wp-content, lalu ganti nama folder plugins menjadi plugins.disable.
  2. Buka website. Kalau 500 Internal Server Error hilang, kembalikan nama folder menjadi plugins, lalu aktifkan plugin satu per satu dari dashboard sampai error muncul lagi. Plugin terakhir yang diaktifkan adalah penyebabnya.
  3. Kalau error masih ada setelah semua plugin mati, ganti tema ke tema bawaan WordPress dari menu Appearance, Themes (Tampilan, Tema). Kalau dashboard tidak bisa dibuka, ganti dulu nama folder tema aktif di wp-content/themes. Kalau error hilang, penyebabnya ada di tema, dan kalian bisa masuk ke dashboard untuk mengaktifkan tema bawaan.

7. Unggah ulang file inti WordPress

Kalau semua langkah di atas tidak berhasil, unduh WordPress dengan versi yang sama dari wordpress.org, lalu unggah ulang folder wp-admin dan wp-includes untuk menimpa yang lama. Jangan menimpa folder wp-content dan file wp-config.php, karena keduanya berisi tema, plugin, upload, dan pengaturan website kalian.

Kapan Harus Menghubungi Hosting

Hubungi tim support hosting kalau kalian tidak bisa membuka error log, kalau 500 Internal Server Error muncul di semua halaman termasuk file statis, kalau batas memori PHP di server perlu dinaikkan, atau kalau semua langkah di atas sudah dicoba tanpa hasil. Sertakan alamat halaman yang error, jam kejadian, isi error log yang relevan, dan langkah yang sudah kalian lakukan, supaya mereka bisa langsung memeriksa sisi server.

Kalau error terus berulang karena website kehabisan memori atau sumber daya di shared hosting, menambah kapasitas adalah solusi yang lebih tahan lama daripada terus menaikkan batas. Cloud Hosting Jetorbit memakai webserver LiteSpeed dan CloudLinux yang mengisolasi sumber daya tiap akun, dengan RAM mulai 1 GB di seri Lite sampai 14 GB di seri Max, serta backup database harian yang bisa kalian pulihkan sendiri.

Bagikan: