Penyebab Utama Error SHTML pada Apache
Error pada file .shtml di server Apache umumnya disebabkan oleh modul mod_include yang belum diaktifkan, konfigurasi Options yang tidak mengizinkan eksekusi Server Side Includes (SSI), atau kesalahan penulisan sintaks pada direktif SSI di dalam file tersebut. SHTML adalah file HTML yang berisi instruksi SSI yang diproses oleh server sebelum dikirim ke browser.
Tabel Diagnosa Error SHTML
| Gejala | Penyebab Utama | Solusi |
|---|---|---|
| Error 500 Internal Server | Kesalahan sintaks SSI atau .htaccess | Cek error_log Apache |
| Kode SSI muncul sebagai teks | mod_include tidak aktif | Aktifkan modul via a2enmod |
| File tidak terproses | Options +Includes tidak diset | Update konfigurasi VirtualHost |
Langkah Teknis Perbaikan
1. Pastikan Modul mod_include Aktif
Apache memerlukan modul mod_include untuk memproses file SHTML. Pada sistem berbasis Debian/Ubuntu, jalankan perintah berikut di terminal:
sudo a2enmod include
sudo systemctl restart apache22. Konfigurasi VirtualHost
Anda harus memberikan izin kepada Apache untuk mengeksekusi SSI pada direktori tertentu. Tambahkan atau pastikan baris berikut ada di dalam blok <Directory> pada file konfigurasi VirtualHost Anda:
<Directory /var/www/html>
Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</Directory>3. Validasi Sintaks SSI
Kesalahan penulisan tag SSI akan menyebabkan server mengembalikan 500 Internal Server Error. Pastikan tag ditulis dengan format yang benar:
<!--#include virtual="/header.html" -->Periksa file log error Apache untuk mengetahui baris mana yang menyebabkan kegagalan. Lokasi log biasanya berada di /var/log/apache2/error.log.
Tips Troubleshooting Lapangan
- Periksa Izin File: Pastikan user
www-datamemiliki akses baca ke file .shtml tersebut. - Cek .htaccess: Jika Anda menggunakan file .htaccess, pastikan direktif
Options +Includesdiizinkan oleh konfigurasi utama server (AllowOverride Options). - Gunakan Log: Selalu pantau
tail -f /var/log/apache2/error.logsaat melakukan pengujian untuk melihat pesan kesalahan secara real-time.