Virtual Host atau yang sering disebut dengan VHost bagi sebagian banyak orang adalah sebuah mapping direktori dari domain maupun sub-domain yang diterima sebelumnya dari DNS. VHost terletak di server, dimana yang telah dibubuhi IP Address dan domain diarahkan kepadanya.
Dari nama domain, arahan selanjutnya adalah DNS atau NS (Domain Name Server), di DNS, baru nama domain tersebut di mapping akan diarahkan ke IP Address publik (server) yang telah ditentukan. Setelah sampai di server, baru kemudian nama domain tersebut akan dimapping ke direktori, bersama dengan log error dan aksesnya.
Berikut adalah contoh diagram untuk VHost:
Mapping diagram Virtual Host
Konfigurasi VHost terletak di webserver, yang biasa sering kita gunakan diantaranya adalah Apache, software yang dapat didapat langsung dari situs www.apache.org ini telah banyak dikenal dunia. Jelas, Aplikasi gratis dan paling banyak digemari orang banyak ini membuat mereka terbantu dengan proyek-proyek nya
Hal pertama yang harus anda lakukan adalah mengarahkan NS dari domain yang anda miliki ke server yang telah anda konfigurasi (tentunya yang telah memiliki IP Address public). Kemudian install webserver, login sebagai user root:
1 |
ahzie92@fauzi:~# sudo su |
Kemudian install paket apache:
1 |
root@fauzi:/home/ahzie92# apt-get install apache2 |
Setelah proses instalasi selesai, masuk kedalam direktori Apache:
1 |
root@fauzi:/home/ahzie92# cd /etc/apache2 |
Di direktori ini ada dapat melihat direktori sites-available dan sites-enabled, direktori sites-available adalah tempat master konfigurasi Virtual Host, dan sites-enabled adalah symbolic link (lebih familiar: shortcut) dari Virtual Host dari konfigurasi yang berada di sites-available.
Masuk ke direktori sites-available:
1 |
root@fauzi:/etc/apache2# cd sites-available |
Buat file dengan perintah: #touch <namadomain anda>, sebagai contoh, saya akan mengkonfigurasi domain ahmadfauzi.id:
1 |
root@fauzi:/etc/apache2/sites-available# touch ahmadfauzi.id |
Kemudian edit file tersebut:
1 |
root@fauzi:/etc/apache2/sites-available# nano ahmadfauzi.id |
Lalu tambahkan konfigurasi berikut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<VirtualHost *:80> ServerAdmin info@ahmadfauzi.id ServerName ahmadfauzi.id ServerAlias www.ahmadfauzi.id DocumentRoot /home/fauzi/public_html/ <Directory /home/fauzi/public_html/> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /home/fauzi/cgi-bin/ <Directory "/home/fauzi/cgi-bin/"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /home/fauzi/logs/www/error.log LogLevel warn CustomLog /home/fauzi/logs/www/access.log combined ServerSignature Off </VirtualHost> |
Sesuaikan huruf berwarna merah dengan konfigurasi anda. Setelah itu simpan dan kemudian edit apache2.conf dengan editor kesayangan anda (saya menggunakan nano):
1 |
root@fauzi:/etc/apache2/sites-available# nano /etc/apache2/apache2.conf |
Scroll ke baris yang paling bawah, dan tambahkan konfigurasi berikut:
1 |
NameVirtualHost *:80 |
Kemudian lakukan perintah:
1 2 |
root@fauzi:/etc/apache2/sites-available# cd /etc/apache2/sites-available root@fauzi:/etc/apache2/sites-available# a2ensite ahmadfauzi.id |
Itu bermaksud mengaktifkan atau meng-enable-kan VHost yang baru saja dibuat. Kemudian lakukan perintah:
1 |
root@fauzi:/etc/apache2/sites-available# /etc/init.d/apache2 reload |
Untuk me-reload konfigurasi apache2, dan restart apache dengan perintah:
1 |
root@fauzi:/etc/apache2/sites-available# /etc/init.d/apache2 restart |
Jika masih failed, cek direktori-direktori path anda setelah itu, dengan konfigurasi VHost diatas, berarti ketika ada public user mengakses domain ahmadfauzi.id, maka akan mengakses semua file di public_html anda di /home/fauzi/public_html/, dan semua log error anda tersimpan di /home/fauzi/logs/www/error.log, log akses anda di /home/fauzi/logs/www/access.log
Selamat mencoba, semoga sukses 🙂