Cara Setting VirtualDocumentRoot di Apache untuk Hosting Dinamis
Virtual host adalah konfigurasi pada webserver yang memungkinan anda menggunakan lebih dari satu domain pada sebuah server. Dengan virtual host anda dapat membuat lebih dari satu website dengan konten yang berbeda dalam sebuah server.

VirtualDocumentRoot adalah sebuah fitur yang ada dalam Apache HTTP Server yang memungkinkan Anda untuk membuat virtual host dinamis berdasarkan nama domain atau subdomain yang diterima oleh server. Dengan menggunakan VirtualDocumentRoot, Anda dapat membuat struktur direktori dan konfigurasi yang lebih dinamis untuk melayani berbagai situs web tanpa harus menambahkan konfigurasi virtual host manual setiap kali Anda menambahkan situs baru.
Konfigurasi VirtualDocumentRoot
Untuk menggunakan VirtualDocumentRoot, Anda perlu mengaktifkannya dalam konfigurasi Apache dan mengonfigurasikan pola nama domain yang digunakan untuk menentukan struktur direktori. Berikut adalah contoh cara Anda dapat mengkonfigurasi VirtualDocumentRoot:
Pastikan modul vhost_alias diaktifkan di Apache. Anda dapat melakukannya dengan menjalankan perintah berikut di terminal:
sudo a2enmod vhost_alias
Buka file konfigurasi Apache yang sesuai, biasanya berada di direktori /etc/apache2/sites-available/ Tambahkan blok konfigurasi berikut:
UseCanonicalName Off
VirtualDocumentRoot /var/www/%0/public_html/
Dalam contoh di atas, %0 akan digantikan dengan nama domain yang digunakan dalam permintaan. Misalnya, jika seseorang mengakses https://alt.web.id, maka VirtualDocumentRoot akan mengarahkan ke /var/www/alt.web.id/public_html.
Restart Apache untuk menerapkan perubahan konfigurasi:
sudo systemctl restart apache2
Menggunakan VirtualDocumentRoot untuk Hosting Dinamis
Setelah Anda mengaktifkan dan mengonfigurasi VirtualDocumentRoot, Anda dapat mulai membuat struktur direktori untuk setiap situs web yang dikelola oleh server Anda. Misalnya, jika Anda memiliki dua situs web dengan nama domain alt.web.id dan mikhmon.alt.web.id, Anda dapat membuat struktur direktori sebagai berikut:
/var/www/mikhmon/
├── alt.web.id/
│ └── public_html/
│ ├── index.html
│ └── ...
└── mikhmon.alt.web.id/
└── public_html/
├── index.html
└── ...
Dalam contoh di atas, saat seseorang mengakses http://alt.web.id, VirtualDocumentRoot akan secara otomatis mengarahkan ke direktori /var/www/alt.web.id/public_html/
Sedangkan untuk http://mikhmon.alt.web.id mengarahkan ke direktori /var/www/mikhmon.alt.web.id/public_html/
Contoh Full Apache Virtual Host
ServerName alt.web.id
ServerAlias *.alt.web.id
ServerAdmin webmaster@localhost
UseCanonicalName Off
VirtualDocumentRoot /var/www/mikhmon/%0/public_html/
ErrorLog ${APACHE_LOG_DIR}/alt.web.id.log
CustomLog ${APACHE_LOG_DIR}/alt.web.id.log combined
SSLCertificateFile /etc/letsencrypt/live/alt.web.id/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/alt.web.id/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
Keuntungan VirtualDocumentRoot
Penggunaan VirtualDocumentRoot memiliki beberapa keuntungan:
- Skalabilitas: Anda dapat dengan mudah menambahkan atau menghapus situs web tanpa perlu mengedit konfigurasi virtual host.
- Efisiensi: Penggunaan yang lebih efisien karena Anda tidak perlu mengulang konfigurasi virtual host untuk setiap situs.
- Manajemen Mudah: Mengelola banyak situs web lebih mudah dengan struktur direktori yang terorganisir secara otomatis.
Kesimpulan
VirtualDocumentRoot adalah fitur yang kuat dalam Apache yang memungkinkan Anda untuk membuat virtual host dinamis berdasarkan nama domain atau subdomain. Ini menghilangkan kebutuhan untuk menambahkan konfigurasi virtual host manual untuk setiap situs baru, sehingga membuat pengelolaan hosting web menjadi lebih efisien dan mudah.