Konfigurasi VirtualHost Apache untuk File SHTML

Konfigurasi Dasar VirtualHost Apache untuk SHTML

Mengaktifkan file berformat .shtml (Server Side Includes) pada web server Apache memerlukan konfigurasi VirtualHost khusus agar direktif SSI seperti #include, #echo, dan #flastmod dapat diproses oleh modul mod_include. Secara default, Apache tidak mengaktifkan SSI demi alasan keamanan dan performa, sehingga Anda harus mendeklarasikannya secara eksplisit di dalam blok konfigurasi VirtualHost.

Untuk menjalankan SHTML, pastikan modul include pada Apache telah aktif. Pada sistem operasi berbasis Debian/Ubuntu, Anda dapat mengaktifkannya melalui perintah terminal sudo a2enmod include, kemudian lakukan restart layanan Apache menggunakan perintah sudo systemctl restart apache2.

Contoh Blok Konfigurasi VirtualHost SHTML

Berikut adalah contoh kode blok konfigurasi VirtualHost Apache yang sudah disesuaikan agar mendukung eksekusi file SHTML secara penuh beserta handler untuk modul mod_include.

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

    <Directory /var/www/html/contoh>
        Options Indexes FollowSymLinks Includes
        AllowOverride All
        Require all granted
        
        # Mengaktifkan handler untuk parsing file .shtml
        AddType text/html .shtml
        AddOutputFilter INCLUDES .shtml
    <isent>

    ErrorLog ${APACHE_LOG_DIR}/contoh_error.log
    CustomLog ${APACHE_LOG_DIR}/contoh_access.log combined
</VirtualHost>

Parameter Penting dalam Konfigurasi SSI Apache

Tabel berikut merinci parameter direktif yang wajib ada di dalam blok <Directory> untuk memastikan file SHTML dirender dengan benar oleh Apache.

Direktif / Parameter Fungsi Utama Keterangan Teknis
Includes Mengaktifkan Server Side Includes Wajib disematkan pada baris Options agar modul mod_include diizinkan berjalan.
AddType text/html .shtml Mendefinisikan tipe MIME Memberitahu browser bahwa ekstensi .shtml harus diperlakukan sebagai dokumen HTML.
AddOutputFilter INCLUDES .shtml Menjalankan filter output Memerintahkan Apache untuk memindai tag SSI (seperti <!--#include-->) sebelum dikirim ke klien.

Langkah Penerapan dan Pengujian

Setelah file konfigurasi VirtualHost selesai disunting (biasanya disimpan di direktori /etc/apache2/sites-available/contoh.conf), lakukan serangkaian langkah pengujian berikut untuk menghindari kesalahan sintaks:

  1. Uji sintaks konfigurasi Apache dengan perintah sudo apache2ctl configtest. Pastikan menghasilkan respon Syntax OK.
  2. Aktifkan situs menggunakan perintah sudo a2ensite contoh.conf jika menggunakan Debian/Ubuntu.
  3. Buat sebuah file uji dengan nama index.shtml di dalam DocumentRoot dengan isi tag SSI sederhana, contohnya: <!--#echo var="DATE_LOCAL" -->.
  4. Akses domain lokal Anda melalui browser atau gunakan perintah curl -I http://contoh.local/index.shtml untuk memeriksa header respons HTTP.

Troubleshooting Masalah Umum SHTML di Apache

Jika file SHTML Anda diunduh (downloaded) alih-alih dirender oleh browser, atau tag SSI muncul sebagai teks biasa di halaman web, periksa beberapa potensi kesalahan berikut:

  • Modul Belum Aktif: Pastikan modul mod_include dan mod_cgid (jika menggunakan skrip eksternal) telah dimuat oleh Apache.
  • Konflik Options: Penggunaan tanda minus seperti Options -Includes di tingkat global atau file .htaccess akan menimpa pengaturan di VirtualHost. Gunakan tanda plus (+Includes) atau pastikan tidak ada konflik pewarisan direktif.
  • Izin Akses File: Pastikan pengguna web server (seperti www-data atau apache) memiliki hak baca yang cukup pada file SHTML dan direktori yang disertakan.