Cara Setting SHTML di Apache (Server Side Includes)

Untuk mengaktifkan dan melakukan setting file dengan ekstensi .shtml (Server Side Includes) pada web server Apache, Anda harus memastikan bahwa modul mod_include aktif serta melakukan konfigurasi pada berkas konfigurasi Apache (seperti httpd.conf, apache2.conf, atau berkas .htaccess). SSI memungkinkan Anda menyisipkan dokumen lain ke dalam sebuah halaman web tanpa perlu menggunakan bahasa pemrograman server-side yang kompleks seperti PHP.

Berikut adalah tabel ringkasan direktif utama yang dibutuhkan untuk menjalankan fungsi SSI pada Apache:

Direktif Apache Fungsi Utama Contoh Penggunaan
LoadModule include_module Mengaktifkan modul SSI Apache di server. LoadModule include_module modules/mod_include.so
AddType / AddHandler Memberitahu Apache untuk mengenali ekstensi file SHTML. AddType text/html .shtml
AddHandler server-parsed .shtml
Options +Includes Memberikan izin direktori untuk memproses perintah SSI. Options Indexes FollowSymLinks Includes
XBitHack On Memerintahkan Apache memproses file yang memiliki bit executable. XBitHack On

Langkah 1: Mengaktifkan Modul Include

Sebelum konfigurasi dijalankan, pastikan modul mod_include sudah dimuat oleh Apache. Pada sistem operasi berbasis Debian/Ubuntu, Anda dapat mengaktifkannya menggunakan perintah terminal:

sudo a2enmod include
sudo systemctl restart apache2

Jika Anda menggunakan server berbasis CentOS/RHEL/AlmaLinux, pastikan baris modul berikut tidak memiliki tanda komentar (#) pada berkas httpd.conf:

LoadModule include_module modules/mod_include.so

Langkah 2: Mengatur Konfigurasi Direktori

Selanjutnya, Anda perlu mengizinkan Apache memproses SSI pada direktori web Anda. Buka berkas konfigurasi virtual host atau berkas konfigurasi utama Apache, lalu tambahkan opsi Includes pada blok direktori:

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

Langkah 3: Mengaktifkan Handler SHTML

Agar server mengenali file berakhiran .shtml dan mengeksekusi perintah di dalamnya, tambahkan konfigurasi handler berikut ke dalam berkas konfigurasi virtual host atau langsung di dalam berkas .htaccess pada root direktori website Anda:

AddType text/html .shtml
AddHandler server-parsed .shtml

Langkah 4: Pengujian Berkas SHTML

Buat sebuah berkas baru bernama index.shtml di dalam direktori root web Anda (misalnya /var/www/html/index.shtml) dan masukkan sintaks SSI standar untuk pengujian:

<html>
<head>
    <title>Tes SHTML</title>
</head>
<body>
    <h1>Uji Coba Server Side Includes</h1>
    <p>Halaman ini dimuat pada: <!--#echo var="DATE_LOCAL" --></p>
</body>
</html>

Akses domain atau alamat IP server Anda melalui peramban web. Jika tanggal dan waktu server tampil secara dinamis, konfigurasi SHTML di Apache telah berhasil diterapkan.

Troubleshooting Masalah Umum

Jika file .shtml diakses namun perintah SSI tidak dieksekusi (muncul sebagai teks mentah atau error 500), lakukan pemeriksaan berikut:

  • Error 500 Internal Server Error: Biasanya disebabkan oleh penulisan sintaks direktif yang salah di dalam berkas .htaccess atau httpd.conf. Periksa log error Apache (/var/log/apache2/error.log).
  • Perintah SSI Diabaikan: Pastikan direktif Options +Includes sudah aktif pada direktori tempat file tersebut berada. Jika menggunakan .htaccess, pastikan AllowOverride diizinkan bernilai All atau mencakup Options.