Konfigurasi Server Side Includes (SSI Parsing)

Server Side Includes (SSI) adalah bahasa scripting direktif sederhana yang digunakan di sisi server untuk menyisipkan konten suatu file ke dalam file HTML lainnya sebelum disajikan ke peramban pengguna. Konfigurasi SSI parsing wajib diaktifkan pada tingkat server web agar direktif seperti <!--#include virtual="file.html" --> dapat dieksekusi dengan benar oleh mesin Apache atau Nginx, alih-alih ditampilkan sebagai komentar HTML biasa.

Tanpa pengaktifan modul dan penetapan ekstensi file yang tepat pada berkas konfigurasi server, instruksi SSI akan diabaikan oleh server web. Hal ini krusial bagi administrator sistem yang ingin mengelola komponen berulang seperti header, footer, atau navigasi situs web statis secara terpusat tanpa memerlukan pemrosesan PHP atau backend yang lebih berat.

Konfigurasi SSI pada Web Server Apache

Pada server web Apache HTTP Server, mekanisme SSI dijalankan melalui modul mod_include. Agar modul ini aktif dan dapat melakukan parsing pada ekstensi file tertentu (umumnya .shtml atau langsung pada .html), konfigurasi direktif pada berkas httpd.conf atau blok <Directory> harus disesuaikan.

Berikut adalah contoh blok konfigurasi Apache untuk mengaktifkan SSI pada ekstensi .shtml:

<Directory "/var/www/html">
    Options +Includes
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</Directory>

Jika Anda ingin mengaktifkan parsing SSI langsung pada berkas standar berformat .html (yang dapat meningkatkan beban kerja CPU server jika situs berukuran besar), gunakan pengaturan filter keluaran sebagai berikut:

<Directory "/var/www/html">
    Options +Includes
    AddOutputFilter INCLUDES .html
</Directory>

Konfigurasi SSI pada Web Server Nginx

Berbeda dengan Apache yang menggunakan modul terpisah, Nginx memiliki modul ngx_http_ssi_module bawaan yang harus diaktifkan secara eksplisit di dalam blok konteks http, server, atau location pada berkas nginx.conf.

Berikut adalah konfigurasi standar Nginx untuk mengaktifkan pemrosesan SSI:

location / {
    ssi on;
    ssi_silent_errors off;
    ssi_types text/html text/xml text/plain;
}

# Khusus untuk file dengan ekstensi .shtml
location ~ \.shtml$ {
    ssi on;
    include /etc/nginx/fastcgi_params;
}

Direktif ssi_silent_errors on; dapat digunakan jika Anda ingin menyembunyikan pesan kesalahan SSI ketika berkas yang disisipkan gagal dimuat, meskipun dalam tahap pengembangan disarankan untuk mengaturnya ke off guna memudahkan proses troubleshooting.

Tabel Parameter & Direktif SSI Parsing

Server Web Direktif Utama Fungsi / Kegunaan
Apache Options +Includes Mengizinkan eksekusi SSI pada direktori terkait.
Apache AddOutputFilter INCLUDES Menentukan ekstensi file yang akan diparse oleh modul filter SSI.
Nginx ssi on; Mengaktifkan pemrosesan SSI pada blok lokasi yang ditentukan.
Nginx ssi_types Menentukan tipe MIME yang mendukung parsing SSI.

Langkah Pengujian SSI Parsing

Setelah melakukan konfigurasi pada server, pastikan modul berjalan dengan membuat berkas uji coba:

  1. Buat file bernama footer.html yang berisi teks sederhana, misalnya: <p>&copy; 2026 Perusahaan Anda</p>.
  2. Buat file utama dengan ekstensi yang sesuai (misal index.shtml untuk Apache atau index.html untuk Nginx yang sudah dikonfigurasi) dan masukkan baris berikut:
    <!--#include virtual="footer.html" -->
  3. Akses halaman tersebut melalui peramban web dan lakukan inspeksi kode sumber (View Source). Jika teks dari footer.html muncul langsung di dalam dokumen HTML yang diterima peramban tanpa menampilkan tag komentar SSI, maka konfigurasi berhasil.

Troubleshooting Masalah SSI

Jika tag SSI tetap muncul sebagai teks mentah pada halaman web, periksa beberapa hal berikut:

  • Pastikan modul Apache include_module sudah dimuat di server (cek dengan perintah httpd -M atau apache2ctl -M).
  • Periksa izin akses berkas (file permissions) dari file yang ingin disisipkan agar dapat dibaca oleh proses server web (www-data / nginx / apache).
  • Perhatikan penggunaan path pada atribut virtual (relatif terhadap dokumen root server) atau file (relatif terhadap direktori file yang sedang diparse).