Cara Enable SHTML Apache Ubuntu (Server Side Includes)

Mengaktifkan SHTML (Server Side Includes) pada web server Apache di Ubuntu membutuhkan tiga tahapan utama: memastikan modul include aktif, mengonfigurasi direktif Options +Includes serta AddHandler pada blok konfigurasi virtual host, dan melakukan pengujian file dengan ekstensi .shtml.

SHTML memungkinkan penyisipan konten file lain (seperti header, footer, atau navigasi) ke dalam dokumen HTML secara dinamis tanpa memerlukan bahasa pemrograman sisi server yang kompleks seperti PHP atau Python.

Langkah 1: Mengaktifkan Modul Include Apache

Secara default, modul include pada Apache mungkin belum aktif. Gunakan utilitas a2enmod untuk mengaktifkannya melalui terminal:

sudo a2enmod include

Setelah modul diaktifkan, muat ulang (restart) layanan Apache agar perubahan diterapkan oleh sistem:

sudo systemctl restart apache2

Langkah 2: Konfigurasi Virtual Host untuk SHTML

Anda perlu memberitahu Apache agar mengizinkan eksekusi Server Side Includes dan mengenali ekstensi file .shtml. Buka file konfigurasi virtual host situs Anda (misalnya /etc/apache2/sites-available/000-default.conf atau file konfigurasi domain Anda) menggunakan teks editor seperti nano:

sudo nano /etc/apache2/sites-available/000-default.conf

Tambahkan atau sesuaikan blok <Directory> di dalam blok <VirtualHost *:80> seperti contoh kode di bawah ini:

<Directory /var/www/html>
    Options Indexes FollowSymLinks +Includes
    AllowOverride All
    Require all granted
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</Directory>

Simpan file konfigurasi (pada nano tekan Ctrl+O, Enter, lalu Ctrl+X). Uji sintaks konfigurasi Apache untuk memastikan tidak ada kesalahan ketik:

sudo apache2ctl configtest

Jika hasil pengecekan memunculkan Syntax OK, terapkan perubahan dengan merestart ulang Apache:

sudo systemctl restart apache2

Langkah 3: Membuat dan Menguji File SHTML

Buat file baru berformat .shtml di direktori root web Anda (misalnya /var/www/html/index.shtml):

sudo nano /var/www/html/index.shtml

Masukkan sintaks SSI dasar untuk menguji apakah penyisipan file berfungsi dengan baik:

<html>
<head>
    <title>Uji SHTML Ubuntu</title>
</head>
<body>
    <h1>Halaman Utama SHTML</h1>
    <p>Tanggal dan waktu server saat ini:</p>
    <!--#echo var="DATE_LOCAL" -->
</body>
</html>

Akses alamat IP server atau domain Anda melalui peramban web (browser). Jika tanggal dan waktu server berhasil muncul secara dinamis di halaman web, konfigurasi SHTML telah sukses.

Tabel Parameter & Direktif SHTML Apache

Direktif / Perintah Fungsi Utama
+Includes Mengizinkan penggunaan Server Side Includes pada direktori terkait.
AddType text/html .shtml Menetapkan tipe MIME untuk file beresktensi .shtml sebagai dokumen HTML.
AddOutputFilter INCLUDES .shtml Memerintahkan Apache memproses file .shtml melalui filter SSI.
<!--#include virtual="file.html" --> Sintaks SSI untuk menyisipkan konten file eksternal.

Troubleshooting Masalah Umum SHTML

Jika file .shtml Anda hanya menampilkan teks kode mentah SSI atau tidak memproses perintah, periksa beberapa hal berikut:

  • Modul belum aktif: Pastikan perintah sudo a2enmod include sudah dieksekusi dan Apache direstart.
  • Izin Direktori: Pastikan direktif Options pada blok <Directory> mencakup +Includes, bukan hanya Includes (tanda plus dibutuhkan jika opsi lain tertimpa).
  • Ekstensi File: Pastikan file disimpan dengan ekstensi persis .shtml, bukan .html (kecuali Anda menambahkan filter SSI untuk ekstensi .html yang tidak disarankan karena masalah performa).