Konfigurasi Apache Mod Include: Panduan SSI dan Sintaks

Konfigurasi mod_include pada web server Apache adalah modul yang memproses dokumen sebelum dikirim ke browser menggunakan teknik Server Side Includes (SSI). Modul ini memungkinkan administrator dan pengembang web untuk menyisipkan konten file eksternal, tanggal, variabel server, hingga hasil eksekusi skrip CGI langsung ke dalam file HTML statis tanpa perlu menggunakan bahasa pemrograman sisi server yang kompleks seperti PHP.

Untuk mengaktifkan dan mengonfigurasikan mod_include dengan benar pada lingkungan server Linux (seperti Ubuntu/Debian atau CentOS/RHEL), Anda harus memastikan modul ini aktif di tingkat server, mendefinisikan direktif AddOutputFilter, serta memberikan izin eksekusi SSI melalui blok konfigurasi direktori pada berkas virtual host.

Langkah Aktivasi Modul mod_include

Pada sistem berbasis Debian atau Ubuntu, modul mod_include biasanya sudah terinstal secara default tetapi belum tentu aktif pada situs web yang sedang berjalan. Gunakan perintah terminal berikut untuk mengaktifkan modul tersebut:

sudo a2enmod include
sudo systemctl restart apache2

Untuk sistem berbasis RedHat/CentOS/Fedora, modul ini dimuat melalui berkas konfigurasi utama Apache (/etc/httpd/conf/httpd.conf) atau direktori conf.d/ dengan memastikan baris berikut tidak memiliki tanda komentar:

LoadModule include_module modules/mod_include.so

Konfigurasi Virtual Host dan Direktori

Agar Apache mengenali dan memproses tag SSI pada ekstensi file tertentu (misalnya .shtml atau langsung pada .html), Anda perlu menambahkan konfigurasi direktif pada blok <Directory> di dalam berkas konfigurasi virtual host Anda.

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

Jika Anda ingin Apache memproses SSI langsung di dalam file berekstensi .html (yang tidak disarankan untuk performa situs berskala besar), ubah baris filter menjadi:

AddOutputFilter INCLUDES .html

Tabel Direktif dan Opsi Konfigurasi mod_include

Direktif / Opsi Letak Konfigurasi Fungsi Utama
Options +Includes Directory, .htaccess Mengaktifkan pemrosesan Server Side Includes pada direktori tersebut.
Options +IncludesNOEXEC Directory, .htaccess Mengaktifkan SSI tetapi melarang tag #exec untuk alasan keamanan.
AddOutputFilter INCLUDES ServerConfig, VHost, Directory Menentukan filter output Apache untuk memindai tag SSI pada tipe file tertentu.
XBitHack On Directory, .htaccess Memeriksa bit executable pada file; jika aktif, file diperlakukan sebagai dokumen SSI.

Contoh Penggunaan Sintaks SSI dalam Berkas HTML

Setelah konfigurasi server selesai dan layanan Apache telah dimulai ulang, Anda dapat membuat file dengan ekstensi .shtml dan menyisipkan elemen SSI standar. Berikut adalah contoh implementasi penyisipan file header, footer, dan tanggal modifikasi file:

<!--#include virtual="/header.html" -->

<main>
    <h1>Selamat Datang di Situs Kami</h1>
    <p>Halaman ini diperbarui terakhir pada: <!--#flastmod file="index.shtml" --></p>
</main>

<!--#include virtual="/footer.html" -->

Troubleshooting Masalah Umum

Jika tag SSI yang Anda tuliskan muncul sebagai teks biasa di browser alih-alih dieksekusi oleh server, lakukan pemeriksaan berikut:

  • Periksa Ekstensi File: Pastikan file menggunakan ekstensi .shtml atau Anda sudah mendefinisikan AddOutputFilter INCLUDES .html di konfigurasi server.
  • Izin Opsi (Options): Pastikan direktif Options pada blok direktori mencakup tanda plus (+Includes), bukan menghilangkannya. Jika menggunakan file .htaccess, pastikan AllowOverride Options diaktifkan di konfigurasi utama Apache.
  • Log Kesalahan: Periksa berkas error.log milik Apache untuk mendeteksi kesalahan sintaks konfigurasi atau masalah izin akses file yang disisipkan.