Pada saat kita berselancar di Internet dengan menggunakan browser atau istilah kerennya browsing, kita pasti akan menuju pada suatu alamat situs yang di dalamnya memuat berbagai macam data, informasi, dan hiburan.Web server adalah software yang memberikan layanan web. Web server menggunakan protocol yang disebut dengan HTTP (HyperTextTransfer Protocol). Pada umumnya, semua situs web di dunia ini digerakkan oleh suatu program aplikasi yang berjalan di server. Program tersebut, yang sering dipakai adalah Apache, dan yang sekarang akan kita bahas adalah salah satu web server yang sangat terkenal dan menjadi standar de facto setiap distribusi Linux, yaitu Apache.
Apache merupakan web server standar yang dipaket oleh berbagai macam distribusi Linux. Hal ini disebabkan karena kemudahan konfigurasi, unjuk kerja yang bagus, dan arsitektur yang modular, menjadikannya sebagai webserver yang terkenal. Dapat dilihat dari Distro Linux besar seperti RedHat, Slackware, dan Mandrake sudah menyertakan Apache dalam iso atau CD-nya. Selain berlisensi GPL (General Public Lisence) atau free software, Apache juga mudah dikonfigurasikan. Sedangkan aplikasi yang menjalankan program apache tersebut biasa dinamakan Web Server atau httpd. Apache Web Server merupakan program aplikasi yang berjalan di server, berfungsi untuk menjalankan aplikasi web sehingga bisa diakses oleh klien baik melalui jaringan intranet maupun Internet.
Apache adalah nama web server yang dibuat berbasiskan kode sumber dan ide-ide
yang ada pada web server leluhurnya, yaitu web server NCSA. Sesuai namanya, web server NCSA dibuat oleh National Center for Supercomputing Applications. Tidak seperti proyek leluhurnya yang dibiayai oleh pemerintah Amerika, web server Apache dikembangkan oleh sekelompok programer yang bekerja tanpa dibayar oleh siapapun. Mereka mengerjakan proyek ini dengan berbagai macam alasan, akan tetapi alasan yang paling mendasar adalah mereka senang jika perangkat lunak mereka digunakan oleh banyak orang. Saat itu pengembangan NCSA httpd sebagai web server mengalami stagnasi. ROB MC COOL meninggalkan NCSA dan memulai sebuah proyek baru bersama para webmaster lainnya, menambal bug, dan menambahkan fitur pada NCSA httpd. Mereka mengembangkan program ini lewat mailing list. Dengan berpijak pada NCSA httpd versi 1.3, Team Apache mengeluarkan rilis pertama kali secara resmi Apache versi 0.6.2
Apache adalah web server yang kompak, modular, mengikuti standar protokol HTTP, dan tentu saja sangat digemari. Kesimpulan ini bisa didapatkan dari jumlah pengguna yang jauh melebihi para pesaingnya. Sesuai hasil survai yang dilakukan oleh Netcraft, bulan Januari 2005 saja jumlahnya tidak kurang dari 68% pangsa web server yang berjalan di Internet. Ini berarti jika semua web server selain Apache digabung, masih belum bisa mengalahkan jumlah Apache. Saat ini ada dua versi Apache yang bisa dipakai untuk server produksi, yaitu versi mayor 2.0 dan versi mayor 1.3. Kita bisa menggunakan salah satu dari keduanya. Tapi sangat dianjurkan untuk memakai versi 2.0.
Alasan mengapa kita harus memilih Apache antara lain arsitekturnya modular, mendukung banyak sistem operasi, termasuk di dalamnya adalah Windows NT/2000/XP dan berbagai varian Unix.Mendukung IP versi 6 (Ipv6), mendukung CGI (Common Gateway Interface) dan SSI (Server Side Include), mendukung otentifikasi dan kontrol akses. mendukung SSL (Secure Socket Layer) untuk komunikasi terenkripsi, konfigurasi yang mudah dipahami, mendukung Virtual Host, Pesan kesalahannya multi bahasa dan bisa dimodifikasi.
Apache merupakan web server yang paling banyak dipergunakan di Internet. Program ini pertama kali didesain untuk sistem operasi lingkungan UNIX. Namun demikian, pada beberapa versi berikutnya Apache mengeluarkan programnya yang dapat dijalankan di Windows NT.
Beberapa dukungan Apache :
1. Kontrol Akses.
Kontrol ini dapat dijalankan berdasarkan nama host atau nomor IP
2. CGI (Common Gateway Interface),
yang paling terkenal untuk digunakan adalah perl (Practical Extraction and Report Language), didukung oleh Apache dengan menempatkannya sebagai modul (mod_perl)
3. PHP (Personal Home Page/PHP Hypertext Processor);
program dengan metode semacam CGI, yang memproses teks dan bekerja di server. Apache mendukung PHP dengan menempatkannya sebagai salah satu modulnya (mod_php). Hal ini membuat kinerja PHP menjadi lebih baik
4. SSI (Server Side Includes)
Instalasi yang dibahas berikut adalah modus instalasi standar (default). Metode instalasi Apache (sejak Versi 1.3) ada dua macam, yakni dengan metode APACI (Apache 1.3 Autoconf-style Interface) atau dengan cara pada versi sebelumnya. Sebelum mulai instalasi, pastikan mesin kita memenuhi beberapa hal :
• Ruang hardisk kosong sebanyak 12 Megabyte. Sebagai tambahan kurang lebih 3 Megabyte untuk modul-modul yang akan dipasang.
• Pastikan mesin Anda memiliki ANSI-C Compiler. Untuk Linux yang paling ideal adalah gcc (GNU C Compiler).
• Perl interpreter (tidak harus) untuk menjalankan beberapa skrip konfigurasi. Jika tidak ada tidak akan mengganggu instalasi secara keseluruhan. Hanya saja beberapa skrip tidak akan dijalankan.
• Dukungan Dynamic Share Object (DSO) (tidak harus), yang memungkinkan Apache menjalankan modul sebagai bagian dari run time-nya.
Platform yang didukung oleh Apache saat ini :
1. Linux
2. SunOS
3. UnixWare
4. FreeBSD
5. Solaris
6. AIX
7. OpenBSD
8. IRIX
9. SCO
10. NetBSD
11. HPUX
12. BSDI
13. Digital Unix
File konfigurasi Apache terletak di direktori /etc/httpd/conf , tergantung direktori yang kita set saat configure Apache ditahap instalasi. Nama filenya adalah httpd.conf,srm.conf dan access.conf. httpd.conf merupakan file yang dieksekusi pertama kali saat Apache dijalankan. Didalamnya berisi konfigurasi secara umum. srm.conf adalah file konfigurasi yang dieksekusi setelah httpd.conf. Disarankan untuk membiarkan file konfigurasi ini tetap kosong. Dan access.conf merupakan konfigurasi untuk memfilter host-host yang boleh mengakses layanan Apache.
File konfigurasi apache terbagi menjadi :File, Konfigurasi, Apache.
Secara default, Apache memisahkan file konfigurasinya menjadi 3 bagian, yakni httpd.conf, srm.conf dan access.conf. Namun semua binary program pada distribusi yang dicobakan menyatukannya dalam satu file yakni httpd.conf. File ini dibagi menjadi 3 bagian utama :
1. Global environment
Berisi konfigurasi Apache secara umum, seperti berapa banyak user dapat mengakses pada saat yang bersamaan.
2. Section (Main) Configuration
Konfigurasi utama yang tidak termasuk dalam virtual host. Bagian ini juga termasuk seting default untuk virtual host.
3. Virtual host
Konfigurasi untuk virtual host, yakni memanggil nomor IP dan DNS yang berbeda meskipun masih dalam satu administrasi oleh Apache.
Berikut pembahasan beberapa contoh pilihan konfigurasi file httpd.conf. Pilihan yang disampaikan di sini mengacu pada file httpd.conf yang diberikan secara default oleh Apache selesai instalasi.
Httpd.conf
Edit file httpd dan sesuaikan dengan kondisi yang diinginkan. Baris yang ada tanda # adalah komentar.
ServerType [standalone/inetd]
Pilihan untuk menentukan apakah menjalankan Apache sebagai http daemon sendiri atau lewat inetd. Pilihan inetd hanya untuk platform Unix.
Port 80
Port yang dipergunakan oleh server. Jika menggunakan port 1023, jalankan httpd sebagai root.
User nobody
Group nogroup
Nama user dan group yang menjalankan httpd. Perlu dicatat di mesin HPUX, user nobody tidak ada akses ke memori, dan disaranakan untuk membuat user dan grup khusus untuk menjalankan httpd.
ServerAdmin root@domain.Anda.com
Alamat yang dipergunakan untuk mengirim/memberitahukan halaman-halaman yang dibuat secara otomatis oleh server. Misalnya, pesan-pesan kesalahan.
ServerName domain.anda.com
Dipergunakan untuk seting nama yang akan diberikan kepada user. Anda dapat pergunakan nama lain selain nama host Anda. Untuk pemberian nama, harus nama DNS yang valid, sesuai dengan seting name server yang mencatat mesin Anda.
DocumentRoot “/var/www/html”
Direktori utama yang dipergunakan untuk menyimpan file html. Anda bisa membuat link simbolik jika ingin meletakkannya dalam direktori lain. Pilihan ini biasanya diikuti beberapa atribut yang memastikan bahwa direktori tersebut diakses secara benar oleh user, dengan kontrol tertentu tanpa mengganggu keamanan dari direktori yang dilayankan pada publik. Untuk keterangan singkat dari atribut yang ada pada tiap direktori,
UserDir public_html
Nama direktori yang ditambahkan ke dalam direktori home dari user, jika ada permintaan user. Misal, permintaan http://nama.domain.anda/~dk akan membuat direktori public_html di direktori home untuk user fade. Anda dapat memberikan seting secara default dari direktori tersebut, misalnya :
AllowOverride FileInfo AuthConfig Limit
Options MultiViewsIndexes SymLinksIfOwnerMatch IncludesNoExec
Order allow,deny
Allow from all
Order deny,allow
Deny from all
Kesulitan dalam penerapan direktori ini biasanya adalah Access Forbidden atau User not Found. Untuk itu pastikan bahwa :
1. User yang bersangkutan terdaftar dalam sistem
2. Pemilik daemon httpd punya hak baca terhadap direktori tersebut.
3. Perhatikan konfigurasi file .htaccess yang ada di tiap direktori.
DirectoryIndex index.html index.htm default.htm
Nama file yang dijalankan secara otomatis pada saat membuka indeks direktori. Anda dapat memasukkan nama lain dengan spasi, sebagaimana contoh di atas.
AccessFileName .htaccess
Nama file yang dilihat saat mengakses masing-masing direktori. File ini untuk informasi kontrol akses. Hal ini berkaitan dengan pilihan berikut :
Order allow,deny
Deny from all
Pilihan tersebut menghindarkan file .htaccess untuk dibaca user lewat web. File ini perlu dilindungi karena berisi informasi host-host yang punya hak akses atau tidak. Pastikan Anda mengubah file di sini jika Anda mengubah AccessFileName yang telah didefinisikan sebelumnya.
CacheNegotiatedDocs
Memungkinkan proxy untuk menyimpan cache web dari server. Jika Anda menghilangkan pilihan ini (dengan memberi tanda pagar di depannya, maka Apache akan mengirim ‘Pragma: no-cache’ pada setiap dokumen yang diakses. Hal ini berarti jika user mengakses lewat proxy, maka Apache meminta proxy tersebut untuk tidak melakukan caching terhadap halamannya.
UseCanonicalName On
Jika diset off maka server akan mengembalikan response hostname:port jika canonical name diakses. Jika diset on, maka Apache akan menggunakan ServerName dan port untuk membentuk canonical name.
TypesConfig /var/lib/apache/conf/mime.types
Direktori tempat menyimpan file mime.types.
DefaultType text/plain
Default MIME types yang digunakan jika sebuah dokumen tidak dikenal. Disarankan untuk menggunakan ‘text/plain’ jika mayoritas file html atau teks. Jika mayoritas gambar atau aplikasi, disarankan untuk menggunakan ‘application/octet-stream’
AddType application/x-httpd-php3 .php3
Dipergunakan untuk membuka file dengan memasukkan dalam mime.types tanpa harus mengeditnya. Yang sering digunakan misalnya untuk memproses modul php, sebagaimana contoh diatas.
AddHandler cgi-script .cgi
Dipergunakan untuk memetakan ‘handlers’ yang dipergunakan dan perintah yang dijalankan pada file dengan ekstensi tertentu. Contoh di atas untuk menjalankan skrip dengan ekstensi .cgi. Contoh lainnya adalah :
AddHandler server-parsed.shtml
AddHandler send-as-is asis
AddHandler imap-file map
AddHandler type-map var
ErrorDocument 404/missing.html
Dipergunakan untuk membuat file error response sendiri. Respon ini mempunyai tiga bentuk :
• Teks murni; misal
ErrorDocument 404 “File yang Anda akses tidak tersedia.
• Menunjuk file lokal; misal
ErrorDocument 404 /cgi-bin/missing_handler.pl
• Menunjuk file eksternal
ErrorDocument 402 http://server.lain.com/info_daftar.html
Virtual Hosts
Bagian ini berisi pilihan jika Anda akan menggunakan domain atau hostnames lebih dari satu dalam satu server.
Untuk dapat memanfaatkan Virtual Hosts, pertama Anda harus mendefinisikan dulu nomor IP dan port yang dipergunakan.