Saturday, December 27, 2008

Konfigurasi Virtual Host pada Apache 2.2

Virtual host adalah suatu teknik yang memungkinkan sebuah IP address memiliki banyak nama host atau domain. Misal, sebuah IP 10.14.10.240 memiliki nama-nama domain coba.com, testing.coba.com, dan tes.com.

Apache 2.2 berbeda dengan versi-versi sebelumnya. Apache 2.2 mengadopsi pendekatan modular untuk file konfigurasi utamanya, httpd.conf. Modul-modul yang ada ditulis dalam file terpisah. Dengan begitu, menjadi lebih efisien dibandingkan harus menuliskan seluruh konfigurasi pada httpd.conf. Alhasil, sangat tidak direkomendasikan untuk mendefinisikan virtual hosts dan melakukan konfigurasinya pada file httpd.conf. Sebagai gantinya, cukup lakukan include terhadap modul virtual hosts yang bernama httpd-vhosts.conf.

Perubahan yang lain pada Apache 2.2 adalah lebih memperhatikan tentang permissions. Jadi sewaktu mendefinisikan virtual host, perlu ditambahkan perintah tambahan agar tidak muncul pesan error seperti di bawah ini.

  • Forbidden
You don't have permission to access /index.php on this server.

Karena masalah permissions inilah, direkomendasikan membuat direktori baru. Misal, /opt/virtual-hosts. Berikut ini adalah langkah-langkah yang saya lakukan dalam melakukan konfigurasi virtual hosts pada Apache 2.2.10. Asumsi, Prefix saat saya melakukan instalasi apache pada /opt/pkg/ dan direktori virtual hosts pada /opt/virtual-hosts serta komputer saya menggunakan IP 10.14.10.240.

1. buat sub-direktori di dalam /opt/virtual-hosts. Saya membuat /opt/virtual-hosts/slacky/aji dan /opt/virtual-hosts/slacky/kunto. Kemudian atur permission untuk direktori-direktori tersebut.

2. membuka file /etc/hosts dan menambahkan nama-nama hosts.
127.0.0.1 localhost 10.14.10.240 slacky.id aji.slacky.id kunto.slacky.id slacky
3. Buka konfigurasi file apache, /opt/pkg/apache/conf/httpd.conf dan mencari bagian

#Virtual hosts
#Include conf/extra/httpd-vhosts.conf

4. Hilangkan tanda # di depan pagar, dan menjadi

#Virtual hosts
Include conf/extra/httpd-vhosts.conf

5. Simpan file httpd.conf

6. Membuka file /opt/pkg/apache/conf/extra/httpd-vhosts.conf. Isi file tersebut kurang lebih seperti ini:
7. Sebelum kata NameVirtualHost *:80, saya menambahkan kode berikut:

<Directory /opt/virtual-hosts/>
Order Deny,Allow
Allow from all
</Directory>

8. Edit /opt/pkg/apache/conf/extra/httpd-vhosts.conf pada baris 27 - 42 menjadi seperti berikut:

<VirtualHost *:80>
ServerAdmin admin@slacky.id
DocumentRoot "/opt/pkg/apache/htdocs"
ServerName slacky.id
ServerAlias www.slacky.id
ErrorLog "logs/slacky.id-error_log"
CustomLog "logs/slacky.id-access_log" common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin admin@aji.slacky.id
DocumentRoot "/opt/virtual-hosts/slacky/aji"
ServerName aji.slacky.id
ServerAlias www.aji.slacky.id
ErrorLog "logs/aji.slacky.id-error_log"
CustomLog "logs/aji.slacky.id-acces_log" common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin admin@kunto.slacky.id
DocumentRoot "/opt/virtual-hosts/slacky/kunto"
ServerName kunto.slacky.id
ServerAlias www.kunto.slacky.id
ErrorLog "logs/kunto.slacky.id-error_log"
CustomLog "logs/kunto.slacky.id-access_log" common
</VirtualHost>

9. Untuk testing, copy index.html default milik apache ke dalam direktori /opt/pkg/apache/slacky/aji dan /opt/pkg/apache/slacky/kunto. Setelah itu buka web browser dan ketik http://aji.slacky.id dan http://kunto.slacky.id. Jika tak ada error, virtual host telah sukses..

referensi:
http://foundationphp.com

5 comments:

  1. beh ......??
    padahal dari dolo yang dah ada rencana buat ,,,,
    nulis ginian di blog,,,,
    tp males ,,,eh malah dah keduluan si ajijay

    tp gw boleh bangga dong , kemarin ada yang translate lagi install nagios on slackware
    dalam bahasa rusia , malah 2X lagi ....
    be,,,,,,,hhhh
    sedep bener

    ReplyDelete
  2. :))
    salah sendiri ga nulis2, sabuk item gtuh...

    nagios emg bkin panas mas...

    ReplyDelete
  3. mas saya udah coba.. dengan:
    a.com
    test.a.com --> virtual
    test1.a.com --> virtual

    tapi hasilnya semua host itu document root nya jadi pindah ke test1.a.com

    kenapa tuh??

    ReplyDelete
  4. boleh tau document root masing2 virtual host nya?

    ReplyDelete

Related Posts Plugin for WordPress, Blogger...