Cara Memperbaiki Error Server Side Includes (SSI)

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).