Konfigurasi VirtualHost Apache untuk File SHTML (SSI)

Mengonfigurasi Apache VirtualHost agar dapat mengeksekusi file dengan ekstensi .shtml (Server Side Includes) memerlukan pengaktifan modul include_module serta penambahan direktif Includes pada blok konfigurasi direktori VirtualHost. Tanpa konfigurasi ini, file SHTML hanya akan dibaca sebagai file HTML biasa dan perintah SSI seperti #include tidak akan diproses oleh server.

Secara default, server web Apache menonaktifkan eksekusi Server Side Includes demi alasan keamanan dan performa. Oleh karena itu, administrator sistem harus secara eksplisit mengizinkan handler dan opsi eksekusi SSI di dalam file konfigurasi VirtualHost atau file .htaccess pada direktori web root.

Langkah Konfigurasi VirtualHost Apache untuk SHTML

Pastikan modul SSI telah aktif di lingkungan server Apache Anda. Pada sistem berbasis Ubuntu/Debian, aktifkan modul menggunakan perintah terminal:

sudo a2enmod include
sudo systemctl restart apache2

Berikut adalah contoh blok konfigurasi VirtualHost standar pada file konfigurasi Apache (biasanya terletak di /etc/apache2/sites-available/000-default.conf atau direktori konfigurasi virtual host Anda):

<VirtualHost *:80>
    ServerName contoh.local
    DocumentRoot /var/www/html/contoh

    <Directory /var/www/html/contoh>
        Options Indexes FollowSymLinks Includes
        AllowOverride All
        Require all granted
    </Directory>

    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</VirtualHost>

Tabel Parameter Konfigurasi SHTML pada Apache

Direktif / Modul Fungsi Utama Keterangan Teknis
mod_include Modul inti Apache untuk SSI Harus dimuat (loaded) agar server mengenali sintaks SSI.
Options +Includes Mengizinkan eksekusi SSI Diletakkan di dalam blok <Directory>.
AddType text/html .shtml Definisi tipe MIME Memberitahu browser bahwa file .shtml adalah dokumen HTML.
AddOutputFilter INCLUDES .shtml Filter output server Memaksa Apache memindai file .shtml untuk mencari tag SSI sebelum dikirim ke klien.

Pengujian File SHTML

Untuk memastikan konfigurasi VirtualHost Anda berjalan dengan baik, buatlah sebuah file bernama index.shtml di dalam direktori DocumentRoot dengan isi sintaks SSI sederhana berikut:

<!--#config timefmt="A %d %B %Y" -->
<p>Hari dan tanggal server saat ini: <!--#echo var="DATE_LOCAL" --></p>
<p>Memuat file eksternal:</p>
<!--#include virtual="footer.html" -->

Troubleshooting Masalah SHTML di Apache

Jika file SHTML Anda menampilkan teks mentah tag SSI atau menghasilkan error 500 Internal Server Error, periksa beberapa hal berikut:

  • Error 500: Biasanya disebabkan oleh kesalahan penulisan sintaks di dalam file konfigurasi Apache atau penggunaan direktif Options yang tidak diizinkan oleh konteks server (periksa file log error di /var/log/apache2/error.log).
  • Tag SSI Diabaikan: Pastikan direktif AddOutputFilter INCLUDES .shtml telah disertakan. Tanpa filter ini, Apache tidak akan memproses isi file meskipun modul sudah aktif.
  • Izin File (Permissions): Pastikan user yang menjalankan proses Apache (seperti www-data) memiliki hak baca terhadap file yang di-include melalui tag #include virtual atau #include file.