Mengatasi Error 500 Internal Server Error Akibat SetHandler

Penyebab Utama Error 500 SetHandler

Error 500 Internal Server Error yang dipicu oleh direktif SetHandler biasanya terjadi karena ketidakcocokan antara modul yang dipanggil di file .htaccess dengan konfigurasi server Apache yang sebenarnya. Seringkali, pengguna mencoba memaksa eksekusi skrip PHP melalui SetHandler application/x-httpd-php pada server yang menggunakan PHP-FPM atau modul yang berbeda, sehingga server menolak perintah tersebut karena modul yang diminta tidak dimuat atau tidak tersedia.

Langkah Perbaikan Teknis

Untuk mengatasi masalah ini, Anda harus memeriksa sintaks di dalam file .htaccess dan memastikan modul yang dipanggil sesuai dengan lingkungan server Anda. Berikut adalah langkah-langkah perbaikannya:

  1. Akses file manager melalui cPanel atau FTP.
  2. Cari file .htaccess di direktori root (pastikan opsi 'Show Hidden Files' aktif).
  3. Unduh cadangan file tersebut sebelum melakukan perubahan.
  4. Cari baris yang mengandung SetHandler.
  5. Komentari baris tersebut dengan menambahkan tanda pagar (#) di depannya atau hapus baris tersebut.
  6. Simpan file dan muat ulang situs Anda.

Tabel Diagnosa Konfigurasi

SkenarioPenyebabSolusi
SetHandler tidak dikenalModul PHP tidak aktifGunakan AddHandler atau hapus SetHandler
Konflik PHP-FPMServer menggunakan proxyHapus direktif SetHandler manual
Sintaks salahTypo pada nama handlerVerifikasi dengan perintah apachectl -M

Contoh Kode Perbaikan

Jika Anda mengalami error saat mencoba memaksa versi PHP tertentu, gunakan metode AddHandler yang lebih kompatibel daripada SetHandler. Berikut adalah contoh kode yang lebih aman untuk file .htaccess:

# Ganti SetHandler dengan AddHandler untuk kompatibilitas lebih luas
# SetHandler application/x-httpd-php (HAPUS ATAU KOMENTARI INI)

<FilesMatch "\.(php4|php5|php7|php8|php)$">
SetHandler application/x-httpd-ea-php81
</FilesMatch>

Troubleshooting Lanjutan

Jika setelah menghapus SetHandler situs masih menampilkan Error 500, periksa log kesalahan server (Error Log) melalui cPanel. Log ini akan memberikan informasi spesifik mengenai modul mana yang gagal dimuat. Seringkali, masalah bukan pada SetHandler itu sendiri, melainkan pada izin file (file permissions) yang tidak tepat (seharusnya 644 untuk file dan 755 untuk folder) atau kesalahan sintaks lain di dalam file .htaccess yang tidak terbaca oleh server.