500 Internal Server Error: Penyebab dan Cara Mengatasinya

Portal Teknologi Kincai Media by 7 min read 136x views
500 Internal Server Error: Penyebab dan Cara Mengatasinya

Share Post

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, persetujuan file yang salah, batas memori PHP yang habis, plugin maupun tema yang bermasalah, dan error di kode PHP. Pengunjung cuma 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 mengatakan 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 maupun HTTP 500
  • There has been a critical error on this website (pesan kiriman 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 famili 5xx, yaitu error dari sisi server. Bedanya ada pada bagiankecil 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 maupun Cloudflare menerima respons yang tidak sah dari server di belakangnya.
  • 503 Service Unavailable: server sengaja menolak permintaan untuk sementara, biasanya karena kelebihan beban maupun sedang maintenance.
  • 504 Gateway Timeout: server perantara sudah menunggu terlalu durasi dan server di belakangnya tidak kunjung menjawab.

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

Penyebab 500 Internal Server Error

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

  • File .htaccess rusak maupun berisi ketentuan yang salah. Dokumentasi WordPress mengatakan .htaccess yang rusak sebagai penyebab yang paling mungkin. Satu baris yang salah ketik maupun ketentuan dari plugin yang tidak didukung server sudah cukup untuk membikin Apache maupun LiteSpeed mengirim error 500.
  • Izin file dan arsip salah. Misalnya file PHP maupun arsip diberi persetujuan yang terlalu renggang seperti 777, maupun pemilik file berubah setelah migrasi.
  • Batas memori PHP habis. Plugin, tema, maupun proses yang berkualitas butuh memori lebih besar dari batas yang diatur. Di log biasanya muncul pesan Allowed memory size of ... bytes exhausted.
  • Plugin maupun tema bermasalah. Error sering muncul tepat setelah memasang maupun memperbarui plugin maupun tema, karena kodenya perselisihan dengan plugin lain maupun dengan varian WordPress.
  • Error PHP. Fatal error, fungsi yang tidak dikenal, maupun kode yang tidak cocok dengan varian PHP di server membikin script selesai sebelum halaman selesai dibuat.
  • File inti WordPress rusak. Misalnya karena proses pembaruan yang terputus di tengah jalan.

Kalau masalahnya ada di hubungan ke database, WordPress biasanya menampilkan pesan lain, yaitu Error establishing a database connection, yang punya metode 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, kemudian muat ulang halaman dengan F5 maupun Ctrl+R (Cmd+R di Mac). Kadang 500 Internal Server Error cuma muncul sesaat, misalnya ketika pemilik website sedang memperbarui plugin.
  2. Kalau kalian baru saja mengirim blangko maupun berbuat pembayaran, jangan langsung mengirim ulang. Cek dahulu email konfirmasi maupun histori transaksi agar tidak terjadi pesanan ganda.
  3. Kalau 500 Internal Server Error statis 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 metode yang paling cepat memberi petunjuk.

1. Baca error log

Log hampir selalu mengatakan penyebab 500 Internal Server Error, komplit dengan nama file dan bilangan barisnya. Di hosting dengan cPanel, buka menu Errors, maupun buka file error_log di arsip 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), maupun /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 arsip 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 maupun FTP, kemudian masuk ke arsip utama website (biasanya public_html).
  2. Ganti nama file .htaccess menjadi .htaccess_old. Aktifkan opsi tampilkan file tersembunyi jika 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, kemudian Permalinks (Pengaturan, Permalink), dan klik Save Changes tanpa mengubah apa pun. WordPress akan membikin file .htaccess baru.

Isi .htaccess kiriman WordPress untuk satu website seperti di bawah. Aturan tambahan dari file durasi bisa dipindahkan satu per satu sambil dicek, agar 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 persetujuan file dan folder

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

5. Naikkan batas memori PHP

Kalau log menginformasikan 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 harga yang kalian pasang mesti lebih besar dari itu, misalnya:

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

Di server sendiri, batas memori PHP juga bisa dinaikkan lewat harga memory_limit di php.ini. Di shared hosting, batas memori biasanya diatur hosting, jadi meminta mereka menaikkannya jika perlu. Kalau memori statis hilang setelah batasnya dinaikkan, cari plugin maupun proses yang memakan memori besar.

6. Nonaktifkan plugin dan ganti tema

  1. Lewat File Manager maupun FTP, masuk ke arsip wp-content, kemudian ganti nama arsip plugins menjadi plugins.disable.
  2. Buka website. Kalau 500 Internal Server Error hilang, kembalikan nama arsip menjadi plugins, kemudian aktifkan plugin satu per satu dari dashboard sampai error muncul lagi. Plugin terakhir yang diaktifkan adalah penyebabnya.
  3. Kalau error statis ada setelah semua plugin mati, ganti tema ke tema kiriman WordPress dari menu Appearance, Themes (Tampilan, Tema). Kalau dashboard tidak bisa dibuka, ganti dahulu nama arsip 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 metode di atas tidak berhasil, unduh WordPress dengan varian yang sama dari wordpress.org, kemudian unggah ulang arsip wp-admin dan wp-includes untuk menimpa yang lama. Jangan menimpa arsip wp-content dan file wp-config.php, karena keduanya berisi tema, plugin, upload, dan pengaturan website kalian.

Kapan Harus Menghubungi Hosting

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

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

Other Article Portal Teknologi Kincai Media
↑
Close Right Ads
Close Left Ads