Troubleshooting SHTML pada Apache: Solusi Konfigurasi & Error

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:

  1. Aktifkan Modul: Pastikan mod_include aktif. Pada sistem berbasis Debian/Ubuntu, gunakan perintah sudo a2enmod include lalu restart Apache dengan sudo systemctl restart apache2.
  2. 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 .shtml

Tabel Diagnosa Error SHTML

GejalaPenyebabSolusi
File tampil sebagai teks mentahMIME type tidak terdaftarTambahkan AddType text/html .shtml
Error 403 ForbiddenIzin direktori kurangPastikan Options +Includes aktif
Include tidak munculSyntax salahCek tag <!--#include virtual="file.html" -->
Server Error 500Konfigurasi .htaccess salahCek 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.