Cara Mengaktifkan SSI (Server Side Includes) di Apache

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.log Apache untuk mendeteksi konflik direktif Options (biasanya terjadi error "Options not allowed here").
  • AllowOverride: Pastikan pada blok direktori utama httpd.conf, nilai AllowOverride diatur ke All atau setidaknya mengizinkan Options agar file .htaccess dapat 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.