Friday, August 29, 2014

Magic (Dynamic) Virtual Host and Subdomain

Berikut ini cara membuat virtual host dan subdomain secara magic / dinamis.
Biasanya restart web server. contoh ubuntu -> service apache2 restart
Sekarang tidak perlu lagi restart webserver. Tinggal arahkan saja A Record pada Control Panel Domain ke IP address server.

Aktifkan dulu module berikut ini:
- vhost_alias
dengan cara :
$: sudo a2enmod vhost_alias

Buat symlink:


Bikin symlink biasa   -> ln -s {/path/to/file-name} {link-name}
Bisa AutoUpdate -> ln -sfn {/path/to/file-name} {link-name}

Magic Virtual Host:


$: cd /var/www/domains
$: ln -sfn /var/www/maheswara /var/www/domains/maheswara.com
atau
$: ln -sfn /var/www/maheswara maheswara.com

Edit httpd.conf atau apache2.conf atau site-avalable/*.conf


###################################################
NameVirtualHost *:80
UseCanonicalName Off
<VirtualHost *:80>
   VirtualDocumentRoot /var/www/domains/%0
    <Directory /var/www/domains>
       Options Indexes FollowSymLinks
      AllowOverride All
      allow from all
   </Directory>
</VirtualHost>
###################################################

Magic Sub Domain:


Kalau mau bikin magic sub domain harus ditentukan dulu domain utamanya.
Binggung juga sih, kalau virtual host dan subdomain dibarengin.
Belum nemu caranya. Mangkanya dibikin alternatifnya seperti dibawah ini.
Kalau kamu ketemu caranya tolong di share ya, di komentar bawah ini.. OK Bro?

Ini karena kedalaman subdomain sendiri berbeda.
misalnya :
- *.maheswara.com ===> ini kedalaman level 3, maka ditulis %-3
- *.maheswara.co.id ==> ini kedalaman level 4, maka ditulis %-4

Nah kalau yang ini perlu melakukan :ubuntu -> service apache2 reload
Tapi cuma sekali saja kok, yaitu ketika ada penambahan domain baru yang memerlukan sub domain secara dinamis/magic.
Oya, direktif ServerName gak usah di tentukan, karena sudah dikenali sama settingan di atas, dikasih pagar #ServerName maheswara.com, atau buang aja deh, biar gak ribet ngelihatnya...

###################################################
<VirtualHost *:80>
  ServerAlias *.maheswara.com
  VirtualDocumentRoot /var/www/domains/maheswara.com/%-3
</VirtualHost>
###################################################

Demikian.
Semoga bermanfaat.