Dasar Teori
Pada beberapa
tahun yang lalu dan sampai sekarang ini, Apache masih menjadi program web
server yang paling banyak digunakan di dunia. Selain digunakan hampir 50% web
server di dunia, Apache juga mampu mengalahkan program web server lainnya
seperti Microsoft dengan IIS nya dan Netscape dengan Netscape Netcenter nya. Dan Apache
merupakan program web server yang menjadi bawaan dari hampir semua varian distribusi Linux.
Sistem yang dibutuhkan
Apache dapat
berjalan di semua distribusi Linux, sedangkan untuk performansinya yang terbaik
perlu diperhatikan beberapa hal sebagi berikut:
1. ANSI C Compiler
Semua program under UNIX/Linux merupakan source
code yang berbahasa C sehingga untuk mengkompilasi program Apache, maka
diperlukan C Compiler. GNU C Compiler (GCC) adalah C Compiler yang juga bawaan
dari semua distro Linux. GCC diperlukan saat proses installasi Apache yang
berbentuk source code (binary code) akan tetapi GCC tidak diperlukan jika paket
Apache berbentuk RPM.
2. Ruang Harddisk yang Memadai
Apache akan berjalan baik dengan ruang harddisk
minimal 12 MB, kecil memang akan tetapi justru yang lebih diperhatikan lagi
adalah saat penyimpanan log file dari Apache, terutama jika web server anda
termasuk web server yang sangat sibuk, misal melayani ratusan ribut hit setiap
harinya. Artinya jika demikian web server anda akan membutuhkan puluhan
megabyte setiap hari, akan tetapi hal ini bisa diatasi dengan melakukan
penghapusan log file secara berkala.
3. RAM yang Memadai
Bagian yang tidak kalah penting untuk diperhatikan
adalah kapasitas RAM yang memadai, karena Apache berjalan dengan menyediakan “child
process” yaitu menyediakan beberapa daemond httpd sekaligus untuk
melayani pengunjung. Oleh karena itu RAM yang dibutuhkan adalah jumlah maksimum
httpd yang disediakan dikalikan dengan jumlah RAM yang dibutuhkan oleh
masing-masing proses httpd tersebut.
Misalnya anda menset MaxSpareServer sebanyak
10 pada konfigurasi httpd.conf maka konfigurasi init artinya anda menyediakan
maksimum 10 httpd daemons untuk melayani masing-masing pengunjung ke web
server anda. Jadi jika rata-rata setiap httpd daemons membutuhkan 1.5 MB
RAM, maka anda membutuhkan minimal 15 MB RAM yang dipakai oleh Apache saja,
belum lagi yang dibutuhkan oleh system dan daemons lainnya. Jadi untuk kondisi
demikian sebaiknya menyediakan 64 MB RAM pada server anda tersebut.
Sebagai gambaran, ada perusahaan portal di Indonesia yang
sudah sangat terkenal dan menggunakan Linux sebagai system operasi web
servernya, dan perusahaan portal tersebut menggunakan mod_perl pada
Apachenya. Mereka menyediakan RAM sebesar 1 Gigabyte untuk melayani sekitar 200
ribut hit setiap hari pada web servernya.
Instalasi Apache
Paket Apache
umumnya sudah ada di CD distro Linux yang ada, jadi anda tidak perlu
mendownload dari internet, akan tetapi untuk mendapat versi terbarunya cara
download menjadi alternatif yang murah. Paket Apache biasanya ada di http://www.apache.org atau anda bisa
mencarinya di http://www.rpmfind.net dan http://www.freshmeat.net . Paket standard yang diperlukan untuk
menginstal Apache adalah apache-1.4.21-1.i386.rpm , apache-devel-1.4.21-1.i386rpm
, apache-manual-1.4.21-1.i386.rpm. Paket-paket tersebut terdiri dari paket
Apache itu sendiri, paket pengembangan (develop), dan paket manual yang dalam
contoh diatas untuk distro RedHat karena memakai kernel i386.
Berikut
caranya untuk menginstal paket Apache yang berbentuk RPM
a.
Masuk
ke direktori yang terdapat paket Apache yang akan diinstall
#cd /mnt/cdrom/RedHat/RPMS
(asumsi
jika paket apache ada di cd installasi RedHat)
b.
Melakukan
kompiling paket
#rpm –ivh
apache-1.4.21-1.i386.rpm
#rpm –ivh
apache-devel-1.4.21-1.i386.rpm
#rpm –ivh
apache-manual-1.4.21-1.i386.rpm
Setelah semua
paket terinstall maka langkah selanjutnya adalah mengkonfigurasi Apache pada
file “httpd.conf” yang biasanya terletak di /etc/httpd/conf/httpd.conf untuk
semua distro. Ingat!!! Apache hanyalah web server, jadi kalau anda ingin
membuat web server dengan berbagai kecanggihan yang dimilikinya, maka anda
perlu untuk mengkombinasikannnya degan web aplikasi yang anda butuhkan
misalnya, PHP, Cold Fusion, Perl, atau bahkan anda bisa mendampingkannya dengan
Tomcat Web Server untuk aplikasi java berbasis web.
Virtual Website
Virtual
Website sangat dibutuhkan jika anda memiliki banyak
domain Internet dan anda ingin memiliki alamat web yang spesifik untuk
masing-masing domain, sedangkan anda hanya memiliki sebuah webserver.
Dengan Virtual Website, masalah tersebut
dapat dipecahkan dengan mudah oleh Apache webserver. Anda tinggal
mengkonfigurasi VirtualHost pada
file konfigurasi Apache. Virtual Website sebenarnya terdiri atas dua tipe yaitu
IP-based-Virtual Website dan Name-based-Virtual Website.
IP-based-Virtual
Website adalah virtual website yang menggunakan banyak
IP Address. Maksudnya setiap domain anda beri IP Address yang berbeda, walupun
semua IP Address tersebut sebenarnya menuju ke sebuah webserver, karena pada
webserver tersebut telah anda jalankan IP
Alias.
Name-based-Virtual
Website adalah virtual website yang hanya
menggunakan sebuah IP Address tetapi dikonfigurasi untuk dapat melayani alamat
web yang ditujukan untuk domain-domain ataupun hostname yang berbeda. Name-based-Virtual Website saat ini
lebih banyak digunakan karena persediaan IP Address yang terbatas.
Tetapi yang perlu diingat dalam
menjalankan IP-based-Virtual Website
dan Name-based-Virtual Website adalah
anda telah menset dengan benar IN A dan
IN CNAME records pada zona file DNS Server anda.
Peralatan
1.
Sebuah
PC Server dengan Apache Web Server yang sudah terinstall.
2.
PC
client yang terhubung dengan PC Server via LAN.
Langkah
Percobaan
1.
Login
sebagai root melalui su ke
sistem Linux
#su
#passwd
2.
Edit file
/etc/httpd/conf/httpd.conf
#vi /etc/httpd/conf/httpd.conf dan commonhttpd.conf
Bagain-bagian berikut perlu
diperhatikan dan dilakukan perubahan jika perlu
·
ServerType [standalone/inetd]
Konfigurasi ini digunakan untuk menentukan tipe Apache yang berjalan
pada server. Ada
dua opsi yang dapat dipilih yaitu standalone
atau inetd. Disini dipilih standalone.
Note: untuk apache versi 2.0, bagian ini
sudah default (standalone) jadi tidak perlu didefinisikan.
·
ServerName namahost
Konfigurasi ini digunakan untuk menentukan nama server yaitu nama
host-nya. Buat saja ns1.kelompok1.ac.id
·
ServerRoot “/etc/httpd”
Konfigurasi ini digunakan untuk menetukan letak root direktori dari
Apache. Root direktori adalah tempat disimpannya file httpd.conf, modul-modul Apache, dan log file dari Apache. Jika anda
menginstal apache secara default dari program RPM, maka secara default root
direktori Apache berada pada direktori “/etc/httpd” , Sedangkan untuk distro
SuSe direktori root berada pada “/var/lib/apache”, jadi dalam hal ini
tergantung pakai distro yang mana. Kondisi default umumnya sudah benar.
·
StartServers angka
Konfigurasi ini digunakan untuk menetukan jumalh child process yang akan diluncurkan oleh
Apache pada saat Apache mulai berjalan pada server. Nilai defaultnya adalah 8.
·
MaxClients angka
Konfigurasi ini digunakan untuk menentukan batas maksimum simultaneous requests yang masih dapat
dilayani. Untuk konfigurasi biasa, angka maksimum adalah 256. Secara default nilainya adalah 150.
·
MaxSpareServers angka
Konfigurasi ini digunakan untuk menentukan jumlah maksimum Apache
idle yang dapat disediakan. Konfigurasi ini sebenarnya sangat genting jika
webserver anda melayani hit yang tinggi. Nilai 20 yang diset sebagai default
sudah cukup untuk webserver anda jika tidak melayani hit yang sangat tinggi.
·
MinSpareServers angka
Konfigurasi ini digunakan untuk menentukan jumlah minimum Apache
idle yang dapat disediakan. Nilai 5 yang diset sebagai default sudah cukup.
Tetapi jika kurang, bisa ditambah.
·
Port nomor_port
Konfigurasi ini digunakan untuk menentukan pada port berapa Apache
berjalan. Secara default port yang digunakan Apache adalah port 80
·
User nama_user
Konfigurasi ini digunakan untuk menentukan sebagai nama_user apa
Apache tersebut dijalankan. Defaultnya adalah nobody atau apache.
Sebaiknya jangan pernah menset user root untuk menjalankan Apache demi keamanan
server. Kondisi default umumnya sudah benar.
·
Group nama_group
Konfigurasi ini digunakan untuk menentukan sebagai nama_group apa
Apache tersebut dijalankan. Defaultnya adalah nobody atau apache.
Sebaiknya jangan pernah menset group root untuk menjalankan Apache demi
keamanan server. Kondisi default umumnya sudah benar.
·
ServerAdmin email_admin
Konfigurasi ini digunakan untuk menentukan alamat email
Administrator yang bertanggungjawab mengelola server. Nantinya jika ada masalah
pada server, maka Administrator akan menerima email tentang permasalahan
tersebut. Buat aja root@kelompok1.ac.id
·
DocumentRoot “/var/www/html”
Konfigurasi ini digunakan untuk menentukan direktori root dari
dokumen webserver. Niali defaultnya adalah /var/www/html/
(mandrake) sedangkan untuk distro lain menyesuaikan misal: /home/httpd/html/ (RedHat). Ini artinya jika seseorang mengunjungi http://domain_anda/test.html, maka
Apache akan mencari file test.html pada direktori /var/www/html.
·
UserDir public_html
Konfigurasi ini digunakan untuk menentukan nama direktori tempat
user menyimpan homepagenya. Defaultnya adalah public_html. Ini artinya jika seorang user misalnya memiliki login
name pada suatu server dengan nama login bejo,
maka jika si bejo membuat direktori public_html pada direktori homenya (/home/bejo/public_html), lalu membuat
file index.html pada direktori /home/bejo/public_html, maka si bejo telah memiliki homepage dengan
alamat http://nama_domain/~bejo.
·
DirectoryIndex index.html index.htm index.shtml index.cgi index.php
Konfiguras ini digunakan sebagai petunjuk bagi Apache untuk langsung
mengakses file tersebut ketika mengunjungi suatu direktori. Misalnya root direktori dokumen adalah /var/www/html/, maka ketika seorang
mengunjungi http://domain_anda, misalnya www.pcr.ac.id, Apache pada server www.pcr.ac.id akan terlebih dahulu mencari
file index.html pada direktori /var/www/html. Jika ada maka file
itulah yang dikirim ke pengunjung tersebut. Jika mengaktifkan PHP, maka perlu
menambahkan index.php pada
konfigurasi diatas.
·
ErrorLog /var/log/httpd/error_log
Konfigurasi ini digunakan untuk menentukan letak direktori dan nama
file yang akan digunakan Apache untuk menyimpan error_log. Defaultnya adalah direktori /var/log/httpd, dengan nama file error_log.
·
CustomLog /var/log/httpd/access_log common
Sama seperti error_log
konfigurasi ini digunakan untuk menyimpan file access_log.
·
Alias /icons/ “/var/www/icons/”
Konfigurasi ini digunakan untuk membuat alias direktori pada URL.
Misalnya, jika seseorang mengunjungi http://domain_anda/icons
maka apache langsung menujudirektori /var/www/icons
pada server tersebut. Abaikan saja jika tidak memerlukannya.
·
ScriptAlias /cgi-bin/ “/var/www/cgi-bin/”
Konfigurasi ini digunakan untuk membuat skrip alias pada URL.
Seperti contoh diatas, jika seseorang mengunjungi http://domain_anda/cgi-bin/test.cgi,
maka Apache akan langsung mengeksekusi file test.cgi pada direktori /var/www/cgi-bin.
Jadi penggunaannya sama seperti Alias
hanya saja dengan ScriptAlias Apache
dapat membuat aplikasi web dengan menggunakan CGI script, Java script dll.
Abaikan saja jika tidak memerlukannya.
3.
Administrasi Apache Webserver
·
Pengontrolan Apache Webserver,
dengan melakukan perintah start / stop / status service httpd, hal ini dapat
dilakukan di terminal seperti berikut:
#/etc/rc.d/init.d/httpd stop
Shuting down httpd: [ OK ]
#/etc/rc.d/init.d/httpd start
Starting httpd: [ OK ]
#/etc/rc.d/init.d/httpd restart
Shuting down httpd: [ OK ]
Starting httpd: [ OK ]
#/etc/rc.d/init.d/httpd status
httpd (pid 1005 1004 1003 1002 1001 999
998 995) is running….
·
Testing Apache Webserver di
browser, dengan mengetikkan http://localhost/
jika muncul halaman web Apache Webserver maka “Selamat anda telah berhasil
menginstall Apache Webserver dengan benar” uhh……J
·
Memonitor Status Apache
Webserver, dengan mengetikkan di browser anda http://localhost/server-status dan
selanjutnya akan muncul halaman web yang memperlihatkan Server Status dari
Webserver yang telah anda buat.
4.
Pengetesan User_Dir public_html
·
Buatlah direktori “public_html”
di home direktori dari user student.
student$mkdir public_html
·
Setelah itu buatlah HTML
sederhana dengan editor vi dan beri nama “index.html” dan simpan di dalam
direktori “public_html”
·
Akses “index.html” yang anda
buat tadi dengan browser dengan mengetikkan URLnya http://localhost/~student/ , maka akan
muncul tampilan HTML dari file index.html, jika tidak maka cek kembali
kebenaran file konfigurasi httpd.conf pada bagian User_Dir publichtml.
5.
Pembuatan Virtual Website
·
Lihat file “vhosts.conf” dan
perhatikan bagian berikut:
NameVirtualHost ip_address:nomor_port
ServerAdmin
email_admin
DocumentRoot
path_ke_direktori_root_dokumen
ServerName
nama_host
Untuk
konfigurasi “NameVirtualhost
ip_address:nomor_port” jika anda menggunakan port standard yaitu port 80, maka anda cukup menggunakan
konfigurasi “NameVirtualhost ip_address”.
·
Rubah konfigurasi diatas sesuai
kondisi Webserver anda seperti berikut:
NameVirtualHost 192.168.1.1 (sesuaikan no IP)
DocumentRoot
/var/www/html
ServerName ns1.kelompok1.ac.id
DocumentRoot
/var/www/rumbai (sesuaikan
direktorinya)
·
Rubah di zone file pada DNS
Servernya menjadi seperti berikut:
Pad file
db.kelompok1.ac.id tambahkan baris berikut:
www.rumbai.com IN CNAME ns1.kelompok1.ac.id.
·
Kemudian buat direktori /var/www/rumbai dengan perintah
#mkdir rumbai (asumsi sudah berada di direktori /var/www/)
dan pastikan permision filenya adalah 755
·
Letakkan file-file html dari
situs www.rumbai.com pada direktori
tersebut. Jangan lupa beri nama index.html pada file html yang berfungsi
sebagai halama utama
·
Agar direktori yang baru dibuat
tadi bisa diakses oleh seluruh orang melalui web browser maka tambahkan baris
berikut di file commonhttpd.conf
Order
allow,deny
Allow
from all
·
Kemudian Restart Apache
#/etc/rc.d/init.d/httpd restart
Referensi
1.
Jhony H. Sembiring, “Jaringan
Komputer Berbasis Linux”.
2.
http://httpd.apache.org/docs-2.0/
makasih
ReplyDeletesolder infrared