Kamis, 27 Mei 2010

Membangun web dengan Apache

Membangun Web Server dengan Apache

Tanpa perlu dikatakan lagi Apache merupakan web server yang populer. Dengan pangsa pasar lebih dari 50% dan jumlah pengguna yang mencapai jutaan, maka tidak mengejutkan jika Apache mempunyai kemampuan yang luas. Di tambah lagi dengan lisensinya yang open source, cakupan modul dan patch untuk Apache menjadikannya platform yang ideal bagi hampir semua kebutuhan web hosting.
1. Download Apache
Kita akan menginstal seluruhnya dari source, bukan menggunakan paket dari suatu distribusi. Pada waktu menginstal dari source, tidak boleh ada Apache yang diinstal pada sistem. Anda bisa saja mempunyai lebih dari satu instalasi, Apache bisa saja tetapi hal ini biasanya tidak dilakukan kecuali Anda tahu apa yang dilakukan dan mengetahui cara kerja Apache untuk melakukan perbaikan jika mereka sedikit kebingungan. Apache didistribusikan di http://httpd.apache.org/, dan kita perlu men-download file httpd-2.0.49.tar.gz dari http://httpd.apache.org/dist/httpd. Kita tidak akan meng-compile modul pihak-ketiga saat ini, walaupun menyimpan source code mereka cukup berguna.
2. Konfigurasi Apache
Setelah mendapatkan file tarball, kita perlu membuka (untar) dan meng-compile-nya sesuai kebutuhan. Kita ingin sebagian besar di-compile, tetapi kita tidak ingin sistem me-load DSO (Dynamic Shared Objects). Di samping itu, kita juga ingin beberapa modul tambahan yang tidak di-compile secara default. Apache dikonfigurasi dengan script ‘./configure’, tetapi kita perlu memberi option tambahan untuk memberitahu apa yang ingin di-compile olehnya: ./configure prefix=/usr/local/apache2--enable-module=so —enable-module=rewrite —enable-module=proxy.
3. Instal Apache
Setelah selesai membuat semua Makefiles, kita dapat meng-compile dan menginstalnya dengan perintah: make && make install. Ini akan menginstal semuanya ke dalam /usr/local/apache2, dengan beberapa subdirektori untuk berbagai elemen Apache. Yang perlu diperhatikan di sini adalah direktori ‘bin’ yang berisi biner Apache dan direktori ‘etc’ yang berisi file konfigurasi. Jika menggunakan konfigurasi default, untuk menjalankannya kita perlu file ‘apachetl’ yang ada di direktori ‘bin’ Ini merupakan program utama yang akan kita gunakan untuk mengontrol instalasi Apache, menjalankan dan menghentikan Apache, serta mengecek konfigurasi.
4. Jalankan Apache
Untuk menjalankan Apache dapat dilakukan dengan perintah: /usr/local/apache2/bin/apachetl start. Secara default, Apache mendengarkan port 80, dan kita harus menjalankannya sebagai root, jika tidak ia tidak dapat mendengarkan port tersebut. Setelah Apache mengikat dirinya ke port tersebut, ia akan mengganti uid dan gid-nya—biasanya menjadi user ‘nobody’ dan grup ‘nobody’— tetapi di dalam konfigurasi kita dapat menggantinya sesuai keinginan.
5. Periksa Instalasi
Jika instalasi Apache Anda berfungsi, Anda bisa memasukkan alamat ‘http://localhost’ pada browser dan akan melihat halaman default, yang memberi selamat karena sudah berhasil menjalankan Apache. Apapun hostname yang kita gunakan untuk mengakses server, ia akan memberikan halaman yang sama, tetapi kita ingin ‘www.pcmedia.co.id’ memberikan halaman yang berbeda dengan ‘www.pcmedia.net’, jadi kita perlu mengonfigurasi Apache untuk menangani mereka secara terpisah. Meng-hosting lebih dari satu situs pada Apache server dikenal dengan virtual hosting, dan pada waktu kita menjalankan virtual hosting berdasarkan nama situs dikenal dengan ‘name based’ virtual hosting.

6. Jalankan Virtual Hosting
Untuk menjalankan virtual hosting, pertama kita harus memilih alamat IP yang digunakan untuk virtual hosting. Biasanya, yang digunakan alamat IP publik, tetapi itu semua bergantung kepada alamat IP yang dituju oleh user pada waktu mengakses situs Anda. Kita gunakan option ‘NameVirtualHost’ yang memberitahu Apache bahwa kita ingin menggunakan name-based virtual hosting pada suatu IP. Konfigurasai Apache terdapat dalam /usr/local/apache2/conf/httpd.conf, yang dapat kita edit dengan editor apapun yang kita suka. Pada bagian akhir file httpd.conf, tambahkan: NameVirtualHost 10.1.1.5:80.
7. Konfigurasi Virtual Hosting
Untuk setiap virtual host, kita perlu membuat DocumentRoot terpisah. Jika kita punya ‘www.pcmedia.net’ dengan DocumentRoot di /home/gunung/public_html, pada waktu kita mengakses http://www.pcmedia.net/index.html, server akan mengirim /home/gunung/public_html/index.html ke client. Konfigurasi virtual host yang paling dasar adalah sebagai berikut:

ServerName www.pcmedia.net
DocumentRoot /home/gunung/public_html

8. Atur Detail Direktori
Hampir semua option yang dimasukkan ke dalam konfigurasi utama Apache dapat dimasukkan ke . adalah salah satu pilihan konfigurasi Apache yang membatasi akses file dan apa yang dapat dilakukan web server pada sistem utama. Jika kita hanya memasukkannya dalam , ia hanya berlaku untuk itu, jika tidak ia akan berlaku untuk semua virtual host. Tambahkan entri berikut:

Options Indexes Includes
AllowOverride All
Order allow,deny
Allow from all

9. Blokir Akses yang Tidak Diinginkan
‘Order’ mengatur urutan pengecekan ‘Deny’ dan ‘Allow’. Karena kita mempunyai ‘Allow from all’ dan tidak mempunyai entri ‘Deny’, maka semua orang dapat mengakses direktori tersebut. Kita dapat memblokir direktori berdasarkan IP, jadi jika kita tidak ingin suatu alamat tertentu mengakses situs kita (misalkan dari jaringan 10.3), tambahkan: Deny from 10.3.0.0/16 sehingga entri pada langkah sebelumnya menjadi: Order allow,deny
10. Tes Apache
Apache dilengkapi dengan benchmark utility bernama ‘ab’, yang ternyata singkatan dari ‘Apache Benchmark’. Menggunakan ab tidak sulit, karena kita cukup menentukan berapa banyak request yang akan dilakukan dan ke mana. Untuk 100 requet ke ‘localhost’, kita hanya perlu melakukan: /usr/local/apache2/bin/ab -n 100 http://localhost/. Kita juga dapat menentukan tingkat concurrency, yaitu jumlah HTTM request yang akan dilakukan pada satu waktu. Untuk melakukan 100 request, 10 sekaligus, kita dapat menjalankan: /usr/local/apache2/.
Paket Apache
Kita telah memilih untuk menginstal Apache dari source-nya, tetapi hampir semua distribusi Linux menyediakan Apache dalam format mereka sendiri. Sayangnya, ini dapat sedikit mempersulit jika kita tidak menggunakan modul dari paket mereka, karena mereka biasanya diinstal pada lokasi yang tidak lazim dan konfigurasinya dibagi ke beberapa file yang berbeda, yang dapat mempersulit pencarian option.