Menjalankan beberapa domain (multiple domains) pada satu server web Apache tunggal dilakukan menggunakan fitur Name-based Virtual Hosting. Fitur ini memungkinkan Apache melayani situs web berbeda berdasarkan nama domain yang diminta oleh browser pengunjung, meskipun domain-domain tersebut mengarah ke alamat IP server yang sama.
Langkah-langkah teknis di bawah ini mengasumsikan Anda menggunakan sistem operasi berbasis Linux (Ubuntu/Debian) dengan hak akses sudo atau root, serta Apache web server yang sudah terinstal.
Langkah 1: Membuat Struktur Direktori Dokumen
Setiap domain membutuhkan direktori (folder) terpisah di dalam server untuk menyimpan file situs web masing-masing. Biasanya direktori ini diletakkan di /var/www/.
sudo mkdir -p /var/www/domainpertama.com/public_html
sudo mkdir -p /var/www/domainkedua.com/public_html
Langkah 2: Mengatur Hak Akses Kepemilikan
Berikan hak kepemilikan direktori kepada pengguna sistem yang sedang aktif agar Anda dapat mengedit file tanpa masalah izin akses (permission denied).
sudo chown -R $USER:$USER /var/www/domainpertama.com/public_html
sudo chown -R $USER:$USER /var/www/domainkedua.com/public_html
sudo chmod -R 755 /var/www
Langkah 3: Membuat Halaman Sampel (HTML)
Buat file index.html sederhana di masing-masing direktori agar Anda dapat menguji apakah konfigurasi virtual host berhasil.
echo "<h1>Selamat datang di Domain Pertama!</h1>" > /var/www/domainpertama.com/public_html/index.html
echo "<h1>Selamat datang di Domain Kedua!</h1>" > /var/www/domainkedua.com/public_html/index.html
Langkah 4: Membuat File Konfigurasi Virtual Host
Apache menyimpan file konfigurasi virtual host di direktori /etc/apache2/sites-available/ pada sistem Debian/Ubuntu. Buat file konfigurasi baru untuk masing-masing domain.
Konfigurasi untuk domainpertama.com:
sudo nano /etc/apache2/sites-available/domainpertama.com.conf
Masukkan blok kode berikut:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName domainpertama.com
ServerAlias www.domainpertama.com
DocumentRoot /var/www/domainpertama.com/public_html
ErrorLog ${APACHE_LOG_DIR}/domainpertama_error.log
CustomLog ${APACHE_LOG_DIR}/domainpertama_access.log combined
</VirtualHost>
Konfigurasi untuk domainkedua.com:
sudo nano /etc/apache2/sites-available/domainkedua.com.conf
Masukkan blok kode berikut:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName domainkedua.com
ServerAlias www.domainkedua.com
DocumentRoot /var/www/domainkedua.com/public_html
ErrorLog ${APACHE_LOG_DIR}/domainkedua_error.log
CustomLog ${APACHE_LOG_DIR}/domainkedua_access.log combined
</VirtualHost>
Langkah 5: Mengaktifkan Konfigurasi dan Restart Apache
Gunakan utilitas a2ensite untuk mengaktifkan file konfigurasi virtual host yang baru saja dibuat, lalu muat ulang (reload) layanan Apache.
sudo a2ensite domainpertama.com.conf
sudo a2ensite domainkedua.com.conf
sudo systemctl restart apache2
Tabel Parameter Direktif Virtual Host
| Direktif | Fungsi Utama |
|---|---|
<VirtualHost *:80> |
Menentukan bahwa blok ini aktif pada port 80 (HTTP) untuk semua IP server. |
ServerName |
Nama domain utama yang dicocokkan dengan request browser. |
ServerAlias |
Nama domain alternatif (misalnya dengan awalan www) yang mengarah ke direktori yang sama. |
DocumentRoot |
Jalur absolut direktori penyimpanan file web domain tersebut. |
Troubleshooting Lapangan
Jika situs web menampilkan halaman default Apache atau error 403 Forbidden, periksa beberapa hal berikut:
- Pastikan DNS record (A Record) pada registrar domain Anda sudah mengarah ke alamat IP publik server VPS yang benar.
- Periksa sintaks konfigurasi Apache menggunakan perintah
sudo apache2ctl configtestsebelum melakukan restart. - Periksa izin akses folder dengan memastikan direktori web dapat dibaca oleh proses server Apache (biasanya user
www-data).