Penyebab Utama SHTML Tidak Berjalan
Masalah SHTML (Server Side Includes) pada Apache umumnya terjadi karena modul mod_include belum diaktifkan, direktif Options +Includes tidak didefinisikan, atau tipe MIME untuk file .shtml belum terdaftar. SHTML memerlukan pemrosesan server untuk membaca instruksi <!--#include ... --> sebelum dikirim ke browser.
Langkah Perbaikan Teknis
Ikuti urutan langkah berikut untuk memastikan server Apache Anda mendukung SHTML:
- Aktifkan Modul: Pastikan
mod_includeaktif. Pada sistem berbasis Debian/Ubuntu, gunakan perintahsudo a2enmod includelalu restart Apache dengansudo systemctl restart apache2. - Konfigurasi VirtualHost atau .htaccess: Anda wajib memberikan izin eksekusi pada direktori terkait. Tambahkan baris berikut ke file konfigurasi Apache atau
.htaccess:
Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtmlTabel Diagnosa Error SHTML
| Gejala | Penyebab | Solusi |
|---|---|---|
| File tampil sebagai teks mentah | MIME type tidak terdaftar | Tambahkan AddType text/html .shtml |
| Error 403 Forbidden | Izin direktori kurang | Pastikan Options +Includes aktif |
| Include tidak muncul | Syntax salah | Cek tag <!--#include virtual="file.html" --> |
| Server Error 500 | Konfigurasi .htaccess salah | Cek sintaks di file .htaccess |
Tips Troubleshooting Lapangan
Jika setelah konfigurasi di atas SHTML masih gagal, periksa log error Apache (biasanya di /var/log/apache2/error.log). Seringkali masalah disebabkan oleh AllowOverride None pada konfigurasi utama Apache yang memblokir pembacaan file .htaccess. Ubah menjadi AllowOverride All pada blok <Directory /var/www/html> agar instruksi SHTML dapat diproses.
Pastikan juga file yang dipanggil melalui perintah #include memiliki izin akses (permission) yang dapat dibaca oleh user www-data atau user yang menjalankan proses Apache.