Error Server Side Includes (SSI) umumnya terjadi ketika web server gagal memproses direktif include, echo, atau perintah SSI lainnya di dalam file HTML atau SHTML. Kegagalan ini sering kali memicu pesan kesalahan internal pada halaman web, seperti pesan teks mentah tertulis di layar atau error 500 pada log server. Untuk memperbaikinya, Anda perlu memastikan modul SSI aktif di server, ekstensi file mendukung, serta sintaks kode direktif sudah benar.
Penyebab Utama Error Server Side Includes
Sebelum masuk ke tahap perbaikan, penting untuk mengenali akar masalah yang sering memicu error pada SSI. Berikut adalah matriks penyebab umum beserta dampaknya pada server:
| Penyebab Error | Web Server Terkait | Gejala di Browser | Solusi Utama |
|---|---|---|---|
| Modul SSI belum aktif | Apache / Nginx | Kode SSI tampil sebagai teks biasa | Mengaktifkan modul mod_include atau modul SSI Nginx |
| Ekstensi file salah | Apache | Perintah #include diabaikan server |
Mengubah ekstensi ke .shtml atau konfigurasi AddHandler |
| Kesalahan sintaks direktif | Apache / Nginx | Pesan error [an error occurred while processing this directive] | Memperbaiki penulisan tag HTML komentar SSI |
| Izin file (Permissions) salah | Linux Server | Error 403 atau gagal memuat file yang di-include | Mengubah hak akses file menjadi 644 |
Langkah 1: Mengaktifkan Modul SSI pada Apache
Jika Anda menggunakan web server Apache, pastikan modul mod_include sudah terpasang dan diaktifkan. Jalankan perintah berikut melalui terminal SSH:
sudo a2enmod include
sudo systemctl restart apache2
Selanjutnya, konfigurasi direktori virtual host Anda agar mengizinkan eksekusi SSI. Tambahkan baris Options +Includes pada blok direktori file konfigurasi Apache:
<Directory "/var/www/html">
Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</Directory>
Langkah 2: Memperbaiki Konfigurasi SSI pada Nginx
Nginx membutuhkan pengaktifan direktif SSI secara eksplisit di dalam blok server atau location. Buka file konfigurasi Nginx (biasanya di /etc/nginx/sites-available/default) dan tambahkan konfigurasi berikut:
server {
listen 80;
server_name example.com;
root /var/www/html;
location / {
ssi on;
ssi_types text/html text/shtml;
}
}
Setelah menyimpan perubahan, uji konfigurasi dan muat ulang Nginx:
sudo nginx -t
sudo systemctl restart nginx
Langkah 3: Memeriksa Sintaks Kode SSI
Sintaks SSI ditulis di dalam komentar HTML. Jika ada kesalahan satu karakter saja, server akan gagal memprosesnya dan memunculkan pesan error. Pastikan format penulisan Anda sudah sesuai dengan standar berikut:
<!--#include virtual="/header.html" -->
<!--#echo var="DATE_LOCAL" -->
Catatan penting: Perhatikan spasi di dalam tanda kurung siku ganda. Format yang salah seperti <!--#includevirtual="header.html"--> tanpa spasi akan menyebabkan error pemrosesan.
Troubleshooting Lanjutan di Lapangan
Jika error masih terjadi setelah langkah di atas dilakukan, periksa file log error server untuk menemukan detail masalahnya:
- Apache Error Log:
/var/log/apache2/error.log - Nginx Error Log:
/var/log/nginx/error.log
Pastikan juga file yang dipanggil melalui perintah include benar-benar ada di direktori tujuan dan memiliki izin baca yang valid bagi pengguna web server (seperti www-data).