Penyebab Utama Error SHTML pada Apache
Error SHTML (Server Side Includes) pada Apache biasanya terjadi karena modul mod_include belum diaktifkan atau konfigurasi direktori tidak mengizinkan eksekusi perintah SSI. SHTML adalah file HTML yang berisi instruksi server-side yang diproses oleh Apache sebelum dikirim ke browser. Jika server tidak dikonfigurasi untuk memproses file ini, Apache akan menampilkan error 500 atau sekadar menampilkan kode mentah.
Langkah Perbaikan Teknis
Untuk memperbaiki masalah ini, Anda harus memastikan modul aktif dan direktori memiliki izin eksekusi yang tepat. Berikut adalah langkah-langkah teknis yang harus dilakukan:
- Aktifkan Modul: Pastikan
mod_includesudah dimuat di file konfigurasi utama Apache (httpd.confatauapache2.conf). - Konfigurasi Direktori: Tambahkan opsi
Includespada direktori yang dituju. - Set Handler: Pastikan Apache mengenali ekstensi .shtml sebagai file yang harus diproses oleh server.
Tabel Konfigurasi Apache
| Parameter | Nilai/Perintah | Fungsi |
|---|---|---|
| Modul | LoadModule include_module | Mengaktifkan fitur SSI |
| Options | +Includes | Mengizinkan eksekusi SSI |
| AddHandler | server-parsed .shtml | Memproses file .shtml |
Implementasi Kode
Anda dapat menambahkan konfigurasi berikut ke dalam file .htaccess di direktori root situs Anda untuk mengaktifkan dukungan SHTML tanpa harus mengubah konfigurasi utama server:
Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtmlTroubleshooting Lapangan
Jika setelah konfigurasi di atas error masih muncul, periksa hal berikut:
- Log Error: Periksa file
error_logApache untuk melihat pesan spesifik (misalnya: 'Options FollowSymLinks or SymLinksIfOwnerMatch is off'). - Izin File: Pastikan file .shtml memiliki izin baca (read) yang benar oleh user web server (biasanya
www-dataatauapache). - Sintaks SSI: Pastikan tag SSI Anda benar, contoh:
<!--#include virtual="header.html" -->. Kesalahan penulisan tag akan menyebabkan error pada sisi server.