Minggu, 18 Januari 2009



HTTP Web Server Pada Gnu/Linux





Apache HTTP Server adalah sebuah aplikasi web server yang bersifat opensource dan memiliki performa dan security yang cukup baik yang dikembangkan oleh Apache Software Foundation (http://www.apache.org). Sebagian besar web server di internet saat ini menggunakan apache sebagai aplikasi web servernya, hal ini berdasarkan survay pada www.netcraft.com hampir 70% web server di dunia(internet) menggunakan Apache HTTP Server. Sebagian besar distribusi linux menyertakan apache sebagai default aplikasi web server.

Instalasi Apache
Untuk memastikan apakah apache anda sudah terinstall apa belum di distro linux kesayangan anda, maka cek terlebih dahulu dengan perintah berikut ini :

1. Untuk distro Centos 5.2
maka perintahnya :

#rpm -qa | grep httpd
httpd-devel-2.2.3-11.el5_2.centos.4
httpd-2.2.3-11.el5_2.centos.4
httpd-manual-2.2.3-11.el5_2.centos.4

Jika dari perintah tersebut menghasilkan output seperti yang diatas maka apache anda sudah terinstall
tapi jika tidak menghasilkan output seperti yang diatas maka di pastikan apache anda belum terinstall.
Adapun perintah untuk menginstall apache seperti berikut :

a. Jika komputer anda terkoneksi dengan internet maka perintahnya adalah :

# yum -y install httpd

b. Tapi jika komputer anda tidak terkoneksi dengan internet maka perintahnya :

rpm -ivh namapaket-apache

contoh :
# rpm -ivh httpd-x-x.x.i386.rpm

note : x-x.x. Maksudnya adalah versi dari httpd itu sendiri.

2. Untuk distro Debian Lenny
maka perintahnya :

# dpkg -l apache2

Name Version Description
=======================================================
apache2 2.2.9.-10 Apache HTTP Server metapackage

Jika dari perintah tersebut menghasilkan output seperti yang diatas maka apache anda sudah terinstall
tapi jika tidak menghasilkan output seperti yang diatas maka di pastikan apache anda belum terinstall.
Adapun perintah untuk menginstall apache seperti berikut :

a. Jika komputer anda terkoneksi dengan internet maka perintahnya adalah :

# aptitude-y install apache2

b. Tapi jika komputer anda tidak terkoneksi dengan internet maka perintahnya :
rpm -ivh namapaket-apache
contoh :

# dpkg -ivh apache2-x-x.x.i386.rpm
note : x-x.x. Maksudnya adalah versi dari apache2 itu sendiri.

Setelah terinstall, apache secara default telah membuatkan file konfigurasi default yang sudah dapat di gunakan, file konfigurasi tersebut terletak di /etc/httpd/conf/httpd.conf (untuk Centos 5.2) sedangkan untuk Debian Lenny konfigurasinya berada di /etc/apache2/site-available. Untuk itu anda dapat mengaktifkan apache web server dengan perintah sbb :

1. Untuk Centos 5.2

# service httpd restart
atau
# /etc/init.d/httpd restart

2. Untuk Debian Lenny

# /etc/init.d/apache2 restart

Selanjutnya Anda dapat memastikan apakah service web benar-benar sudah bejalan, gunakanlah perintah berikut :

# netstat -tanp | grep :80
tcp 0 0 0.0.0:80 0.0.0.0:* LISTEN 2076/httpd

jika perintah “nststat -tanp | grep :80” tersebut ada output seperti diatas maka web server sudah jalan dan siap menerima request dari client. Silahkan gunakanlah web browser anda (misal mozilla) lalau ketiklah pada bar address http://localhost. Maka akan muncul welcome page.

Konfigurasi Apache
Sebagaimana telah disebutkan sebelumnya bahwa dengan default konfigurasi Apache web server sudah berfungsi, dan jika diperlukan konfigurasi ulang, anda cukup mengedit file konfigurasi apache yaitu file /et/httpd/conf/httpd.conf (Untuk distro Centos 5.2) dan file /etc/apache2/site-available (Untuk distro Debian Lenny). Untuk itu anda harus memahami terlebih dahulu beberapa parameter(directive) konfigurasi apache yang penting dan umum. File konfigurasi apache biasanya di dalamnya menyertakan guide atau keterangan yang menjelaskan fungdi dari masing-masing parameter yang ada pada file konfigurasi apache.

Global Environment :

Server Type
Apache bisa dijalankan dengan dua cara, yaitu sebagai server yang berjalan sendiri atau dijalankan oleh program lain, yang sering disebut dengan super user server. Nilai yang mungkin untuk direktif ini adalah inetd dan standalone.

Server Root

Direktif ini dipakai untuk menentukan top level direktori tree dari file-file konfigurasi, log, dan error log.

PidFile
Untuk menentukan file yang di pakai untuk menyimpan proses ID dari server induk.

TimeOut
Waktu tunggu maksimal dalam detik yang diperbolehkan, baik untuk mengirim atau menerima permintaan ke server.

KeepAlive, MaxKeepAliveRequests, dan KeepAliveTimeOut

Ketiga direktif ini berhubungan dengan “persistent connections”. Jika KeepAlive bernilai On maka server memberi kesempatan untuk menjaga presistensi koneksi dari client ke server. Nilai lain yang mungkin untuk direktif ini adalah Off. Yang dimaksud dengan presistensi adalah Client yang sama akan dilayani oleh proses anak yang sama dari Apache Server. Jadi disini ada mekanisme mengingat koneksi.

MaxKeepAliveRequest menentukan jumlah koneksi maksimum yang diperbolehkan saat terjadi koneksi persisten. Anda bisa memberikan nilai 0 agar jumlah koneksi tidak dibatasi. Waktu tunggu maksimum sebuah koneksi masih bisa dilayani dengan cara koneksi persisten. Satuannya adalah detik.

MinSpareServers, MaxSpareServers, dan StartsServers
Saat pertama server dijalankan proses induk akan membuat proses anak sebanyak yang disebutkan dalam direktif StartServers. Proses anak akan terus diawasi agar tidak kurang dari MinSpareServers dan tidak lebih dari MaxSpareServers.

MaxClients

Membatasi jumlah clients yang dilayani secara bersamaan.

MaxRequestPerChild
Setiap proses anak diperbolehkan melayani paling banyak sejumlah MaxRequestPerChild sebelum mati. Sebagai catatan, dalam proses koneksi persisten dianggap satu koneksi. Nilai 0 dipakai untuk mewakili jumlah tak terbatas.

Listen dan Bind Address
Akan menentukan dimana server Apache melayani permintaan. Contoh :
Listen 8080
Listen 192.168.0.121:80
Artinya apache akan melayani permintaan dari port 8080 dan dari nomor IP 192.168.0.121 pada port 80. Direktif ini sangat bermanfaat untuk membuat virtual host bila server Anda mempunyai beberapa nomor IP yang bisa dipakai.
Bind Address berfungsi sama dengan Listen akan tetapi disini hanya bisa dipakai nomor IP dan nama host saja.

Direktif Main Server :

User dan Group
User dan group yang akan dipakai untuk menjalankan server Apache.

ServerAdmin dan ServerName
ServerAdmin berisi alamat email dari administrator web server. Sedangkan ServerName berisi menentukan nama host dari server utama.
Contoh :
ServerAdmin root@your-server.com
ServerName www.your-server.com

DocumentRoot

Root direktori dari dokumen-dokumen html. Contoh :
DocumentRoot “var/www/html”
Jika kita mengakses url http://www.your-server.com/utama.html, sama dengan mengakses file /var/www/html/utama.html.

Berikut ini adalah contoh konfigurasi Apache HTTP Server di lingkungan Linux :

1. Untuk Keluarga Debian (Debian Lenny)
sekenario disini adalah kita akan membuat webserver lokal dengan nama direktory yang akan muncul di web browser(mozila firefox) bernama “download”.Penulis menganggap konfigurasi DNS SERVER,setingan Ip address beserta nameserver yg ada di /etc/resolve.conf sudah dalam keadaan terkonfigurasi dengan baik. Occe mulai aja dech kita ikutin langkah demi langkah cara konfigurasinya :

a. membuat direktori download dibawah direktori /home/vhost/enuxer.oke/www/download, ketik perintah dibawah ini pada consol atau terminal :
# mkdir /home/vhost/enuxer.oke/www/download

note : enuxer.oke merupakan sebuah nama domain pada DNS server, oleh sebab itu sebelum mengkonfigurasi sebuah apache http server sebaiknya membuat DNS server terlebih dahulu. Tujuanya adalah untuk mempermudah dalam mengonfigurasi apache dan memperkecil potensi error.

b. buat direktori yang bernama “log” dibawah direktori /home/vhost/enuxer.oke/log. Tujuan dari pembuatan direktori “log” ini adalah untuk melihat pesan kesalahan saat terjadi error ketika mengkofigurasi apache http server yang berada pada sebuah file yang bernama error_log dan access_log. Kemudian chmod 755 direktori /home/vhost/enuxer.oke/log. Tujuan dari chmod 755 adalah agar si derektori “log” bisa menulis file yang bernama error_log dan access_log secara otomatis. Untuk mudahnya ketiklah perintah berikut ini pada consol atau terminal :

# mkdir -p /home/vhost/enuxer.oke/log
# chmod 755 /home/vhost/enuxer.oke/log

c. isi skrip dibawah ini pada direktori /etc/apache2/sites-enabled/enuxer.oke

# vi /etc/apache2/site-enabled/enuxer.oke

NameVirtualHost *:80

ServerName www.enuxer.oke
ServerAdmin webmaster@enuxer.oke
DocumentRoot "/home/vhost/enuxer.oke/www"

Options Indexes MultiViews FollowSymlinks
AllowOverride none
Order deny,allow
Allow from all

ErrorLog /home/vhost/enuxer.oke/log/error_log
TransferLog /home/vhost/enuxer.oke/log/access_log


# jangan lupa setelah anda selasai mengetikan perintah diatas simpan dengan perintah :x

d. langkah selanjutnya adalah merestart service apache http server anda, tapi sebelumnya jalankan service a2ensite, jangan lupa pula untuk mengaktifkan service bind (DNS server) anda. Ketiklah perintah dibawah ini pada consol atau terminal :

# a2ensite enuxer.oke
# /etc/init.d/apache2 restart
# /etc/init.d/bind9 restart

e. Bukalah Web Browser (mozila firefox) anda, lalu ketikan http://enuxer.oke maka akan muncul tampilan web server local seperti pada gambar di bawah ini :

2 komentar:

di3d mengatakan...

gua beneran ga ngerti deh maksudnya apaan??

ajarin gua donk!!!

nugroho mengatakan...

apana yg gak ngerti?? dimnanya yg ndak ngerti?? *pura2 sok pewinter* :p