Diagnosa Masalah Server Side Includes (SSI)
Masalah utama pada Server Side Includes (SSI) biasanya berakar pada konfigurasi server yang belum mengizinkan eksekusi direktif SSI atau ekstensi file yang tidak terdaftar. SSI adalah mekanisme sederhana untuk menyisipkan konten dinamis ke dalam file HTML statis, namun sangat bergantung pada modul server (seperti mod_include pada Apache) dan izin akses (permissions).
Langkah Troubleshooting Utama
Jika direktif SSI Anda tidak muncul atau menghasilkan error, ikuti langkah sistematis berikut:
- Verifikasi Modul Server: Pastikan modul
mod_includeaktif. Pada Apache, gunakan perintahapachectl -M | grep include. - Konfigurasi Handler: Pastikan server mengenali ekstensi file (biasanya .shtml). Jika Anda ingin menggunakan .html, Anda harus menambahkan konfigurasi khusus.
- Izin File (Permissions): Pastikan file memiliki izin baca (read) yang benar oleh user web server (misalnya
www-data). - Cek Error Log: Selalu periksa
/var/log/apache2/error.logatau/var/log/nginx/error.loguntuk pesan spesifik seperti 'SSI directive failed'.
Tabel Matriks Masalah dan Solusi
| Gejala | Penyebab Utama | Solusi |
|---|---|---|
| File tidak diproses | Ekstensi tidak terdaftar | Tambahkan AddHandler server-parsed .html |
| Error 500 | Konfigurasi .htaccess salah | Cek sintaks Options +Includes |
| Output kosong | Izin file terbatas | Chmod 644 pada file target |
| SSI tidak muncul | Modul tidak aktif | Aktifkan mod_include di server |
Konfigurasi Apache (.htaccess)
Untuk mengaktifkan SSI pada file .html, tambahkan baris berikut ke dalam file .htaccess Anda:
Options +Includes
AddType text/html .html
AddOutputFilter INCLUDES .htmlKonfigurasi Nginx
Nginx tidak menggunakan .htaccess. Anda harus mengedit blok location di file konfigurasi utama:
location / {
ssi on;
}Tips Lapangan
Hindari penggunaan SSI untuk logika yang kompleks. SSI dirancang untuk tugas ringan seperti menyisipkan header, footer, atau tanggal modifikasi terakhir. Jika Anda memerlukan logika pemrograman berat, gunakan bahasa sisi server seperti PHP atau Python. Selalu pastikan direktif <!--#include virtual="file.html" --> menggunakan path relatif yang benar dari root dokumen server.