Server Side Include (SSI) adalah mekanisme pemrosesan sisi server sederhana yang memungkinkan pengembang web menyisipkan konten dari satu file ke dalam file HTML lainnya sebelum halaman tersebut dikirimkan ke peramban pengguna. Konfigurasi SSI sangat berguna untuk menyertakan komponen berulang seperti header, footer, atau navigasi tanpa harus menggunakan bahasa skrip yang kompleks seperti PHP atau memuat ulang seluruh struktur dokumen.
Untuk mengaktifkan dan mengonfigurasi SSI, administrator sistem harus melakukan penyesuaian pada tingkat konfigurasi web server, baik menggunakan Apache HTTP Server maupun Nginx, serta memastikan ekstensi file yang didukung (.shtml) dikenali oleh server.
Konfigurasi SSI pada Web Server Apache
Pada Apache, pemrosesan SSI ditangani oleh modul mod_include. Modul ini biasanya sudah disertakan secara default pada instalasi standar Apache di berbagai distribusi Linux seperti Ubuntu, Debian, maupun CentOS.
Langkah-langkah Pengaktifan di Apache:
- Aktifkan modul
includedengan menjalankan perintah terminal:sudo a2enmod include. - Buka berkas konfigurasi virtual host situs Anda (misalnya
/etc/apache2/sites-available/000-default.confatau berkas.htaccess). - Tambahkan direktif
Includespada opsiOptionsdi dalam blok direktori situs Anda. - Tambahkan penanganan tipe media untuk ekstensi berkas
.shtml.
<Directory /var/www/html>
Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</Directory>
Setelah konfigurasi selesai, simpan berkas dan lakukan uji sintaks dengan perintah sudo apache2ctl configtest, lalu muat ulang layanan menggunakan sudo systemctl restart apache2.
Konfigurasi SSI pada Web Server Nginx
Nginx memiliki modul bawaan bernama ngx_http_ssi_module yang menangani pemrosesan SSI. Berbeda dengan Apache yang memerlukan modul tambahan spesifik, modul SSI di Nginx dapat langsung diaktifkan melalui direktif di dalam blok server atau lokasi (location).
Langkah-langkah Pengaktifan di Nginx:
- Buka berkas konfigurasi Nginx Anda, umumnya terletak di
/etc/nginx/sites-available/defaultatau/etc/nginx/nginx.conf. - Tambahkan direktif
ssi on;di dalam blokserveratau bloklocationyang diinginkan. - Opsional: Atur penanganan kesalahan SSI menggunakan
ssi_silent_errors on;untuk menyembunyikan pesan kesalahan sintaks SSI dari pengunjung publik.
server {
listen 80;
server_name contoh.com;
root /var/www/html;
index index.html index.shtml;
location / {
ssi on;
ssi_silent_errors off;
}
}
Uji konfigurasi Nginx dengan perintah sudo nginx -t dan terapkan perubahan dengan sudo systemctl reload nginx.
Tabel Perbandingan Direktif SSI Apache vs Nginx
| Parameter | Apache HTTP Server | Nginx |
|---|---|---|
| Modul Pendukung | mod_include |
ngx_http_ssi_module |
| Perintah Pengaktifan | Options +Includes |
ssi on; |
| Filter Output | AddOutputFilter INCLUDES .shtml |
Otomatis aktif jika ssi on |
| Penanganan Error | SSIErrorMsg |
ssi_silent_errors |
Contoh Penggunaan Sintaks SSI
Setelah server dikonfigurasi, Anda dapat menyisipkan file eksternal (seperti header atau footer) ke dalam dokumen HTML dengan ekstensi .shtml menggunakan sintaks komentar khusus:
<!--#include virtual="/header.html" -->
<h1>Selamat Datang di Situs Kami</h1>
<p>Ini adalah konten utama halaman web.</p>
<!--#include virtual="/footer.html" -->
Troubleshooting Lapangan
Jika tag SSI tidak diproses oleh server dan muncul sebagai teks biasa di peramban, periksa beberapa hal berikut:
- Pastikan ekstensi berkas menggunakan
.shtml, bukan.html, kecuali Anda telah mengonfigurasi web server untuk memproses SSI pada ekstensi.html(yang tidak disarankan karena alasan performa). - Periksa kembali izin akses berkas (file permissions) agar web server memiliki hak baca (read access) terhadap berkas yang disisipkan melalui perintah
include. - Periksa log error server (
/var/log/apache2/error.logatau/var/log/nginx/error.log) untuk mendeteksi jalur berkas (file path) yang mungkin salah atau tidak ditemukan.