Mengaktifkan Server Side Includes (SSI) pada web server Apache memerlukan tiga tahapan utama: memastikan modul include aktif, mengubah konfigurasi direktori atau file .htaccess untuk mengizinkan eksekusi SSI, dan menambahkan handler atau opsi Includes.
SSI adalah bahasa scripting sisi server sederhana yang biasanya digunakan untuk menyisipkan konten dari file lain ke dalam halaman web (seperti header, footer, atau tanggal modifikasi file) tanpa harus menggunakan bahasa pemrograman yang lebih kompleks seperti PHP.
Langkah 1: Mengaktifkan Modul Apache (mod_include)
Sebelum konfigurasi direktori dilakukan, pastikan modul mod_include sudah aktif di server Apache Anda. Pada sistem operasi berbasis Debian/Ubuntu, jalankan perintah terminal berikut:
sudo a2enmod include
sudo systemctl restart apache2
Untuk lingkungan CentOS, RHEL, atau Fedora, modul ini biasanya sudah aktif secara default. Pastikan baris berikut tidak memiliki tanda pagar (#) pada file konfigurasi utama Apache (httpd.conf):
LoadModule include_module modules/mod_include.so
Langkah 2: Konfigurasi Virtual Host atau .htaccess
Agar Apache mengenali dan memproses perintah SSI, Anda harus menambahkan direktif Options +Includes pada blok direktori VirtualHost atau melalui file .htaccess di direktori root website Anda.
Berikut adalah contoh konfigurasi pada blok VirtualHost Apache (biasanya terletak di /etc/apache2/sites-available/000-default.conf atau httpd.conf):
<Directory "/var/www/html">
Options Indexes FollowSymLinks +Includes
AllowOverride All
Require all granted
</Directory>
Jika Anda menggunakan file .htaccess, cukup tambahkan baris berikut di dalam file tersebut:
Options +Includes
Langkah 3: Mengatur Handler untuk Ekstensi File
Secara default, Apache hanya memproses SSI pada file dengan ekstensi .shtml. Anda perlu mengaktifkan handler agar ekstensi tersebut dikenali, atau memaksa Apache membaca file standar seperti .html atau .htm (meskipun opsi kedua dapat menurunkan performa server).
Tambahkan baris berikut ke dalam file .htaccess atau konfigurasi VirtualHost:
AddType text/html .shtml
AddOutputFilter SUBSTITUTE .shtml
Atau jika Anda ingin file .html biasa memproses SSI:
AddHandler server-parsed .html
AddHandler server-parsed .shtml
Tabel Parameter Konfigurasi SSI Apache
| Direktif / Modul | Fungsi Utama | Contoh Penerapan |
|---|---|---|
mod_include |
Modul inti Apache untuk menangani SSI. | sudo a2enmod include |
Options +Includes |
Mengizinkan pemrosesan SSI pada direktori tertentu. | Options Indexes +Includes |
AddHandler server-parsed |
Menentukan ekstensi file yang akan diparse oleh SSI. | AddHandler server-parsed .html |
##include |
Sintaks SSI untuk menyisipkan file eksternal. | <!--#include virtual="footer.html" --> |
Langkah 4: Pengujian File SSI
Setelah konfigurasi selesai dan layanan Apache direstart, buat sebuah file uji coba bernama test.shtml (atau test.html jika Anda mengatur handler untuk ekstensi tersebut) di direktori root web Anda.
<!DOCTYPE html>
<html>
<head>
<title>Uji Coba SSI Apache</title>
</head>
<body>
<h1>Halaman Ini Menggunakan SSI</h1>
<p>Waktu server saat ini adalah: <!--#echo var="DATE_LOCAL" --></p>
</body>
</html>
Buka file tersebut melalui browser. Jika tanggal dan waktu server berhasil ditampilkan secara dinamis, maka konfigurasi SSI pada Apache telah aktif dan berjalan dengan baik.
Troubleshooting Masalah Umum SSI
Jika instruksi SSI tidak dieksekusi dan hanya tampil sebagai komentar HTML biasa di browser, periksa beberapa hal berikut:
- Log Error Apache: Periksa file
error.logApache untuk mendeteksi konflik direktifOptions(biasanya terjadi error "Options not allowed here"). - AllowOverride: Pastikan pada blok direktori utama
httpd.conf, nilaiAllowOverridediatur keAllatau setidaknya mengizinkanOptionsagar file.htaccessdapat menimpa konfigurasi server. - Sintaks Penulisan: Pastikan penulisan tag SSI benar, yaitu menggunakan format
<!--#command parameter="value" -->tanpa spasi berlebih di dalam tanda kurung siku ganda.