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:
- Uji sintaks konfigurasi Apache dengan perintah
sudo apache2ctl configtest. Pastikan menghasilkan responSyntax OK. - Aktifkan situs menggunakan perintah
sudo a2ensite contoh.confjika menggunakan Debian/Ubuntu. - Buat sebuah file uji dengan nama
index.shtmldi dalamDocumentRootdengan isi tag SSI sederhana, contohnya:<!--#echo var="DATE_LOCAL" -->. - Akses domain lokal Anda melalui browser atau gunakan perintah
curl -I http://contoh.local/index.shtmluntuk 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_includedanmod_cgid(jika menggunakan skrip eksternal) telah dimuat oleh Apache. - Konflik Options: Penggunaan tanda minus seperti
Options -Includesdi tingkat global atau file.htaccessakan menimpa pengaturan di VirtualHost. Gunakan tanda plus (+Includes) atau pastikan tidak ada konflik pewarisan direktif. - Izin Akses File: Pastikan pengguna web server (seperti
www-dataatauapache) memiliki hak baca yang cukup pada file SHTML dan direktori yang disertakan.