Cara Mengaktifkan SSI (Server Side Includes) di Apache Ubuntu

Mengaktifkan Server Side Includes (SSI) pada web server Apache di Ubuntu memerlukan tiga tahapan utama: mengaktifkan modul include, mengonfigurasi direktif Options dan AddOutputFilter pada blok konfigurasi virtual host, serta menyesuaikan izin eksekusi berkas HTML atau SHTML. SSI memungkinkan Anda menyisipkan konten eksternal ke dalam satu halaman web secara dinamis tanpa menggunakan bahasa pemrograman berat seperti PHP.

Persyaratan Sistem

Sebelum memulai, pastikan Anda memiliki akses root atau hak istimewa sudo ke server Ubuntu, serta layanan web server Apache yang sudah terinstal dan berjalan dengan baik.

Komponen Keterangan / Perintah
Sistem Operasi Ubuntu Server 20.04 LTS, 22.04 LTS, atau 24.04 LTS
Web Server Apache2 (terinstal via apt install apache2)
Modul Apache include (mod_include)
Hak Akses Sudo / Root privileges

Langkah 1: Mengaktifkan Modul Include Apache

Modul mod_include bertanggung jawab untuk memproses direktif SSI di dalam Apache. Gunakan utilitas a2enmod untuk mengaktifkan modul ini dengan menjalankan perintah berikut di terminal:

sudo a2enmod include

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

sudo systemctl restart apache2

Langkah 2: Mengonfigurasi Virtual Host

Selanjutnya, Anda perlu memberi tahu Apache direktori mana saja yang diizinkan menjalankan perintah SSI. Buka file konfigurasi virtual host Anda menggunakan teks editor seperti nano:

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

Tambahkan atau ubah blok direktori untuk web root Anda (misalnya /var/www/html) dengan menyisipkan baris Options +Includes dan AddOutputFilter INCLUDES .shtml atau .html. Contoh konfigurasi lengkap:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    <Directory /var/www/html>
        Options Indexes FollowSymLinks +Includes
        AllowOverride All
        Require all granted
        AddType text/html .shtml
        AddOutputFilter INCLUDES .shtml
    <!-- Jika ingin SSI berjalan di file .html biasa, tambahkan baris berikut: -->
        # AddOutputFilter INCLUDES .html
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Simpan file dengan menekan Ctrl+O, lalu keluar dengan Ctrl+X.

Langkah 3: Menguji Konfigurasi dan Validasi

Sebelum me-restart Apache kembali, lakukan uji sintaks konfigurasi untuk memastikan tidak ada kesalahan pengetikan (typo):

sudo apachectl configtest

Jika muncul pesan Syntax OK, restart kembali layanan Apache:

sudo systemctl restart apache2

Langkah 4: Membuat Berkas Uji Coba SSI

Buat sebuah berkas baru berformat .shtml di dalam direktori /var/www/html/ untuk menguji apakah sintaks SSI berfungsi dengan baik:

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

Masukkan kode pengujian SSI sederhana berikut:

<html>
<head>
    <title>Tes SSI Apache</title>
</head>
<body>
    <h1>Uji Server Side Includes</h1>
    <p>Tanggal dan waktu server saat ini adalah: <!--#echo var="DATE_LOCAL" --></p>
</body>
</html>

Akses berkas tersebut melalui browser Anda (contoh: http://IP_SERVER_ANDA/test.shtml). Jika tanggal dan waktu server berhasil tampil secara dinamis, maka konfigurasi SSI di Ubuntu telah berhasil diaktifkan.

Troubleshooting Lapangan

Jika tag SSI muncul mentah di browser (misalnya tetap tertulis <!--#echo var="DATE_LOCAL" -->), periksa kembali tiga hal berikut:

  • Pastikan modul include benar-benar aktif dan Apache sudah di-restart.
  • Periksa apakah direktif Options +Includes tidak tertimpa oleh konfigurasi lain di dalam file utama apache2.conf.
  • Jika menggunakan ekstensi .html, pastikan direktif AddOutputFilter INCLUDES .html sudah dimasukkan dengan benar ke dalam blok direktori.