20 Sep 2011

Membuat Virtual Host di Apache


Apache mempunyai sebuah directive yang bisa dipakai untuk membuat seakan-akan ada banyak web server dengan alamat yang berbeda-beda pada satu server. Nama directive tersebut adalah VirtualHost.
Kebanyakan web hosting menggunakan cara ini untuk membagi web server ke pelanggan mereka. Jadi, jangan heran kenapa sewa web hosting bisa murah banget. Kalau kita menyewa web hosting sebenarnya kita berbagi server dengan pelanggan yang lain.

Selama trafik ke website kita belum terlalu tinggi, itu tidak terlalu jadi masalah. Akan tetapi jika trafiknya tiba-tiba melonjak dan terus bertambah, sebaiknya kita menyewa server sendiri. Jika tidak, siap-siap saja diputus kontraknya secara sepihak oleh penyedia web hosting tersebut, karena pelanggan yang lainnya akan menjadi korban.
Pada tulisan ini saya nggak akan membahas tentang web hosting. Saya akan mengulas bagaimana cara membuat virtual host pada komputer kita sendiri, khususnya dengan sistem operasi Windows. Mungkin ini berguna bagi Anda yang sering mendapat order bikin website.
Katakanlah pada saat yang bersamaan kita mendapat order membuat website dari tiga perusahaan yang berbeda, misalnya PT PertamaPT Kedua dan PT Ketiga. Biar kayak server sesungguhnya (yang di-publish di Internet) kita bisa membuat virtual host di komputer kita dengan alamat yang berbeda.
Trik ini bisa juga dipakai untuk mengakali pelanggan kita, agar saat demo terlihat seolah-olah kita sedang mengakses alamat situs yang sebenarnya (yang terhubung dengan Internet). Padahal kenyataannya yang kita buka adalah virtual host di komputer kita. :-)
Mau tahu kelanjutannya? Berikut ini cara membuat virtual host di komputer kita:
  1. Pertama, buat sebuah direktori untuk meletakkan file-file dari virtual host, misalnya saja C:\sites. Pada direktori tersebut nantinya kita akan membuat semua virtual host.
  2. Buka file C:\WINDOWS\system32\drivers\etc\hosts dengan Notepad atau editor teks ASCII lainnya. Lihat baris paling bawah yang berisi seperti ini:
    127.0.0.1    localhost
  3. Tambahkan baris dibawahnya nama virtual host yang akan kita buat, misalnya seperti berikut ini:
    127.0.0.1    www.pt-pertama.com
    127.0.0.1    www.pt-kedua.com
    127.0.0.1    www.pt-ketiga.com
  4. Jika kita ingin membuat virtual host yang lain, tambahkan dengan cara yang sama. Satu baris untuk satu alamat domain. Jangan lupa untuk menyimpan file tersebut.
  5. Buka file konfigurasi Apache (C:\xampp\apache\conf\httpd.conf) dengan editor teks. Pada contoh ini saya memakai XAMPP. Cari baris seperti di bawah ini:
    # Virtual hosts
    # Include conf/extra/httpd-vhosts.conf
  6. Hapus karakter # dari baris kedua, sehingga menjadi seperti berikut ini:
    # Virtual hosts
    Include conf/extra/httpd-vhosts.conf
    Selanjutnya simpan file konfigurasi tersebut.
  7. Buka file C:\xampp\apache\conf\extra\httpd-vhosts.conf dengan editor teks. Tambahkan baris-baris berikut ini pada bagian akhir file tersebut.
    <Directory C:\sites>
       Order Deny,Allow
       Allow from all
    </Directory>
  8. Buat direktori baru pada direktori C:\sites dengan nama pt-pertama, pt-kedua dan pt-ketiga. Ketiga direktori ini dipakai untuk menyimpan dokumen web dari masing-masing situs.
  9. Tambahkan baris-baris berikut pada file httpd-vhosts.conf.
    NameVirtualHost *:80
    
    <VirtualHost *:80>
       DocumentRoot C:\xampp\htdocs
       ServerName localhost
    </VirtualHost>
    
    <VirtualHost *:80>
       DocumentRoot C:\sites\pt-pertama
       ServerName www.pt-pertama.com
    </VirtualHost>
    
    <VirtualHost *:80>
       DocumentRoot C:\sites\pt-kedua
       ServerName www.pt-kedua.com
    </VirtualHost>
    
    <VirtualHost *:80>
       DocumentRoot C:\sites\pt-ketiga
       ServerName www.pt-ketiga.com
    </VirtualHost>
  10. Simpan httpd-vhosts.conf dan restart Apache.
  11. Buat file indeks.php dan letakkan pada direktori ketiga virtual host tersebut. Misalnya isinya adalah sebagai berikut:
    <?php
       echo "Ini adalah situs dari PT Pertama";
    ?>

Tidak ada komentar:

Posting Komentar