Jumat, 05 Agustus 2011

Web Server

  1. Pendahuluan
Web Server adalah software server yang menjadi tulang belakang dari World Wide Web (WWW). Web server menunggu permintaan dari client yang menggunakan browser seperti netscape navigator, Internet Explorer, modzilla, dan program browser lainnya. Jika ada permintaan dari browser, maka web server akan memproses permintaan itu dan kemudian memberikan hasil prosesnya berupa data yang diinginkan kembali ke browser. Data ini mempunyai format yang standar disebut dengan format SGML ( Standard General Markup Language). Data yang berupa format ini kemudian akan ditampilkan oleh browser sesuai dengan kemampuan browser itu. Contohnya ialah bila data yang dikirim berupa data gambar, browser yang hanya mampu menampilkan text (misalnya lynx) tidak akan mampu menampilkannya dan jika ada akan menampilkan alternatifnya saja.
Web Server, untuk berkomunikasi dengan clientnya (web browser) mempunyai protokol sendiri yaitu HTTP (HyperText Transfer Protocol). Dengan protokol ini, komunikasi antar web server dengan clientnya (browser) dapat saling dimengerti dan lebih mudah.
Seperti telah dijelaskan diatas, Standar format data pada World Wide Web adalah SGML. Tapi sudah menjadi hal yang umum bahwa para pengguna internet lebih banyak menggunakan format HTML (HyperText Markup Language) karena penggunaannya yang lebih sederhana dan mudah dipelajari.
Kata HyperText mempunyai arti bahwa seorang pengguna internet dengan web browsernya dapat membuka dan mambaca dokumen-dokumen yang ada dalam komputernya atau bahkan komputer yang jauh tempatnya sekalipun. Hal ini memberikan cita rasa dari suatu proses yang tridimensional, artinya pengguna internet dapat membaca dari satu dokumen ke dokumen yang lain hanya dengan mengklik beberapa bagian dari halaman-halaman dokumen (web) itu.
Proses yang dimulai dari permintaan webclient (browser), diterima web server, diproses, dan dikembalikan hasil prosesnya oleh web server ke webclient lagi dilakukan secara transparan. Setiap orang dapat dengan mudah mengetahui apa yang terjadi pada tiap-tiap proses. Secara garis besarnya web server hanya memproses semua masukan yang diperolehnya dari web clientnya.
Untuk membuat sebuah web server, maka kita akan menemukan berbagai macam persoalan, dimulai dari pemilihan software web browser yang manayang paling sesuai kebutuhan, apa spesifikasi hardware yang dibutuhkan, bagaimana kondisi interkoneksi jaringan internet yang ada, dan lain sebagainya. Belum lagi termasuk bagian pembuatan halaman-halaman webnya, mau menggunakan format apa (HTML, SGML, PHP, PHP3, CGI, dan lain-lain). Hal yang paling utama dalam proses pembuatan Web Server adalah memilih software mana yang akan digunakan sebagai web server kita.Untuk itu, perlu adanya beberapa pertimbangan sebagai berikut :
  1. Komersial lawan Freeware (software gratis).
  2. Kemudahan instalasi
  3. Kemudahan mengonfigurasi
  4. Kemudahan untuk menambah atau mengubah periferalnya.
  5. Kemampuan software.
  6. Besar ruang yang dibutuhkan untuk menyimpan file-file minimal yang dibutuhkan agar software berfungsi dengan baik
  7. Prospek software tersebut dimasa yang akan datang
  8. Performasi dan konsumsi sumber daya yang digunakan software itu.
  9. Fasilitas apa yang mampu didukung software itu.
10. Dukungan Teknis (mempunyai site-site atau mailis untuk bertanya bila terjadi masalah).
11. Dukungan Platform (jenis sistem operasi apa saja yang dapat menjalankan software tersebut)
12. Dukungan terhadap third party (Apakah software ini dapat ditambahkan software tambahan sebagai pelengkap)
Banyak sekali software web server yang berada di internet. Dengan berdasarkan pada 12 macam pertimbangan diatas, maka dapat dipilih software mana saja yang cocok dengan kebutuhan kita.Misalnya : Kita memasang web server untuk keperluan suatu perusahaan jasa internet (ISP ), maka pertimbangan yang harus diambil adalah apakah mereka menginginkan software yang gratis atau komersial. Keuntungan dari software komersial adalah mereka punya dukungan teknis dan dokumentasi yang lengkap, sedang pada kebanyakan software gratis tidak punya. Namun ada juga software gratisan yang mempunyai dukungan teknis dari pembuatnya dan dengan dokumentasi yang lengkap. Salah satu software web server gratisan seperti itu adalah Web server Apache.
Web server Apache mempunyai kelebihan dilihat dari beberapa pertimbangan diatas:
Apache termasuk dalam kategori freeware (software gratisan)
Apache mudah sekali proses instalasinya jika dibanding web server lainnya seperti NCSA, IIS, dan lain-lain.
Mampu beroperasi pada berbagai platform sistem operasi seperti : AUX 3.1, BSDI 2.0, FreeBSD 2.1, HP-UX 9.07, IRIX 5.3, Linux, NetBSD 1.1, NEXTSTEP, SolarisX86 2.5, Solaris 2.4, Solaris 2.5, SunOS 4.1.3, UnixWare 1.1.2.
Apache mudah untuk mengonfigurasinya. Apache mempunyai hanya empat file konfigurasi beserta file konfigurasinya sehingga lebih memudahkan proses konfigurasi.
Apache Web server mudah dalam menambahkan periferal lainnya ke dalam platform web servernya, misalnya : untuk menambahkan modul, cukup hanya menset file konfigurasinya agar mengikutsertakan  modul itu kedalam kumpulan modul lain yang sudah dioperasikan.
Features atau ciri khas dari web server Apache adalah
  1. Dapat dijadikan pengganti bagi NCSA web server.
  2. Perbaikan terhadap kerusakan dan error pada NCSA 1.3 dan 1.4
  3. Apache web server dalam merespon client sangat cepat jauh melebihi server NCSA.
  4. Mampu di kompilasi sesuai dengan spesifikasi HTTP yang sekarang.
  5. Apache menyediakan feature untuk multihomed dan virtual server.
  6. Kita dapat men-set respon error yang akan dikirim web server dengan menggunakan file atau skrip.
  7. Server Apache dapat otomatis berkomunikasi dengan client browsernya untuk menampilkan yang tampilan terbaik pada client browsernya. Misalnya browser ingin menampilkan dalam bahasa Spanyol, maka Apache web server otomatis mencari dalam servicenya halaman-halaman dengan bahasa Spanyol.
  8. Webserver Apache secara otomatis menjalankan file index.html, halaman utamanya, untuk ditampilkan secara otomatis pada clientnya.
  9. Webserver Apache mempunyai level-level pengamanan.
10. Apache mempunyai komponen dasar terbanyak di antara webserver-webserver lain, yang berarti bahwa webserver Apache termasuk salah satu dari webserver yang lengkap.
11. Ditinjau dari segi sejarah perkembangan dan prospeknya di masa yang akan datang, Apache web server mempunyai prospek yang cerah. Apache berasal dari webserver NCSA yang kemudian dikembangkan karena NCSA masih mempunyai kekurangan dibidang kompatibilitasnya dengan sistem operasi lain. Sampai saat ini, webserver Apache terus dikembangkan oleh team dari apache.org.
12. Performansi dan konsumsi sumberdaya (resource) dari webserver apache tidak terlalu banyak, hanya sekitar 20 MB untuk file-file dasarnya dan setiap daemonnya hanya memerlukan sekitar 950 KB memory per-child.
13. Mendukung transaksi yang aman (secure transaction) menggunakan SSL (Secure Socket Layer).
14. Mempunyai dukungan teknis melalui web.
15. Mempunyai kompatibilitas platform yang tinggi.
16. Mendukung third party berupa modul-modul tambahan.

  1. Instalasi server binari (Precompiled Server)
Berikut akan dijelaskan instalasi webserver Apache pada sistem operasi Unix, atau Linux dengan versi 2.XX ke atas.
Apache sudah pernah dikompilasi pada banyak platform sistem operasi (SO), dan masih ada kemungkinan bahwa salah satunya sesuai dengan platform SO anda. Jika anda tertarik untuk mencoba mengompile source (sumber) yang masih mentah, langsung saja anda ke bagian berjudul “Instalasi dari source” karena akan langsung memberikan informasi cara mengompilasi server Apache HTTP.
Instalasi sebuah server yang belum terintegrasi mirip dengan cara instalasi source-only distribution. Bedanya hanya bahwa pada instalasi ini, binari “httpd” yang telah dikompilasi sudah ada di directory src. Binari apache server yang telah terkompilasi disebut httpd (hypertext transfer protocol daemon). Pada paket source-only distribution, file ini berlabel “httpd-sistem_operasi”, dimana sistem_operasi adalah nama SO yang menjadi platform, misalnya untuk sistem operasi linux disebut httpd-linux.
  1. Instalasi dari Source (Sumber)

Proses instalasi dari sumber agak sedikit memakan waktu sebab anda harus melakukan proses tambahan dibanding sebelumnya, tapi dengan begitu akan membuat anda lebih mengetahui apa saja yang anda masukkan  ke dalam webserver Apache anda nantinya, disamping itu juga dapat memberikan kesempatan untuk memasang sendiri modul-modul ke dalam webserver Apache anda. Banyak dari modul-modul ini menyediakan fungsi-fungsi yang akan menambah kehandalan webserver anda.
Semua file yang diperlukan ada di dalam directory src. Instalasi dari source membutuhkan minimal tiga langkah berikut :
  1. Edit file  src/Configuration.
  2. Jalankan script diatas dengan mengetik perintah configure.
  3. Jalankan perintah kompilasi dengan mengetik perintah make.
  1. Mengedit file src/Configuration
Sebelum mengompilasi software webserver Apache, harus diedit terlebih dahulu suatu file konfigurasinya yaitu file dengan nama Configuration yang berada dalam  direktori src. Tujuannya untuk menset beberapa pilihan agar sesuai dengan karakteristik Sistem operasi (pada beberapa keadaan termasuk hardware) anda. Webserver Apache mempunyai sistem berupa penggunaan modul-modul untuk menunjang sistem dasar dari webservernya. Agar modul-modul ini dapat berfungsi, mereka harus dideklarasikan dalam file konfigurasi ”Configuration”. File konfigurasi ini dapat ditemukan dalam directori src dalam direktori sumber (source). Dalam direktori tersebut, sudah terdapat file konfigurasi contohnya dengan nama Configuration.tmpl. Jadi tinggal di duplikat menjadi file Configuration Untuk membuat duplikat file konfigurasi ini, ketik hal berikut ini:
cd src
cp Configuration.tmpl Configuration
Dengan menggunakan editor kesukaan anda, baca dan edit file yang telah anda buat tadi. Daftar file konfigurasi standar diikut-sertakan dalam bagian akhir bab ini untuk dijadikan referensi. Ingatlah bahwa hanya tulisan-tulisan yang tidak ada tanda komentar (#) didepannya saja yang akan dieksekusi oleh kompiler. Jadi dengan cara menghapus tanda komentar ( tanda #) tulisan (perintah) yang bersangkutan akan dieksekusi. Dan dengan memberi komentar (memberi tanda #) didepan setting lainnya, akan menjadikannya komentar dan tidak akan di eksekusi program kompiler.
  1. Mengeksekusi file konfigurasi dengan perintah “configure“
Setelah mengedit file “Configuration”, anda perlu menjalankannya dengan menggunakan perintah “configure”. Perintah ini merupakan perintah jenis Bourne Shell yang akan memakai file konfigurasi hasil pengeditan anda (src/Configuration) untuk membuat file Makefile dan modules.c baru mengonfigurasi sesuai dengan pilihan yang anda set di file “Configuration”. Caranya adalah dengan mengetik pada terminal anda :
cd /usr/local/apache/src
(jika anda meletakkan source webserver Apache di direktori s/usr/local/apache/)
./configure
configure membolehkan anda untuk menspesifikasi sebuah file konfigurasi lain selain Configuration di command line dengan menggunakan flag –file:
Configure -file NEXTSTEP.configuration
Menggunakan file konfigurasi alternatif “NEXTSTEP.configuration”
Feature ini berguna jika anda perlu mengurus banyak file konfigurasi untuk mesin yang berbeda.

  1. Mengompile menggunakan perintah “make”
Jika pada tahap configure berjalan normal, anda seharusnya dapat mengompile source anda menjadi webserver dengan  mengetik di terminal anda perintah:
./make
Setelah beberapa lama, tergantung pada kecepatan hardware anda, akan diperoleh versi webserver yang telah terkompilasi, dengan nama “httpd” dan berada di directory /usr/local/apache/src.

  1. Mengonfigurasi Runtime Server
Apache membaca tiga file : access.conf, httpd.conf, and srm.conf , sebagai file konfigurasi yang dijadikan acuan saat webserver.
Tujuan mengapa dibuat tiga file konfigurasinya untuk menyediakan kompatibilitas dengan server NCSA (asal mula webserver apache), tapi pada versi 1.3.3 ke atas hanya menggunakan satu file konfigurasi yaitu httpd.conf. File-file konfigurasi berada dalam direktori “conf”. Contoh file-file konfigurasi berada dalam distribusi softwarenya, dengan nama : access.conf-dist, httpd.conf-dist, and srm.conf-dist.
Anda hanya perlu membuat duplikat dari direktori ini dengan nama tanpa “–dist” :
cd /usr/local/apache/conf
cp httpd.conf-dist httpd.conf
cp access.conf-dist access.conf
cp srm.conf-dist srm.conf
Setelah itu, anda sudah siap untuk mengkonfigurasi server ini dengan cara mengedit file-file ini. Dalam file ini, bentuk-bentuk perintahnya sebagai berikut :
Perintah pilihan1 pilihan2
Tulisan perintah diganti dengan sebuah perintah runtime-nya seperti Options, AllowOverride, dan lain-lain sedang pilihan1, pilihan2 dan seterusnya diganti dengan nilai seperti sebuah nama file; Ada beberapa perintah yang dibuat dalam satu bagian untuk menjelaskan bahwa perintah itu hanya berlaku untuk bagian itu saja , disebut sections. Bagian perintah seperti ini dilingkupi oleh kurung sudut seperti ini : <perintah pilihan1>.
Isi didalamnya berupa perintah-perintah dalam bentuk perintah hanya berlaku untuk hal yang di tulis pada bagian kurung ( dalam tanda <> ), dan ditutup dengan tanda yang sama ditambah tanda backslash (/) seperti : </perintah>.  Sama seperti sebelumnya tulisan perintah dapat diganti dengan perintah runtime-nya webserver, contohnya :
<Directory /direktori/>
AllowOverride All
Options None
</Directory>
(artinya perintah AllowOverride All, dan Optoins None hanya berlaku untuk bagian /direktori/)
Ingatlah bahwa masing-masing perintah harus ditulis perbaris.
1. Mengedit file httpd.conf
File httpd.conf berisi perintah-perintah yang mengatur bagaimana cara kerja server anda, dimana file log (pencatat) ditaruh, siapakah (user ID / UID) yang menjalankan server ini, port berapa yang harus didengar oleh server ini, dan seterusnya. Pada file httpd.conf hasil duplikat httpd.conf-dist sudah ada beberapa perintah yang menjadi default webserver agar lebih mudah memahaminya. Tapi ada beberapa perintah yang harus diubah yaitu :
ServerAdmin nama_login@host.domain
Nama_login@host.domain harus diganti dengan alamat e-mail dari penanggung jawab server ini dalam hal ini e-mail anda , seperti tono@bukopin.ac.id atau lebih umum digunakan e-mail webmaster@bppt.co.id. Alamat ini penting sebab akan ditampilkan kepada browser pemakai bila terjadi error atau kerusakan pada server kita.
User dan Group
Perintah User dan Group diganti dengan identitas user (UID) dan group ID. GID dari pengeksekusi server, defaultnya adalah user nobody group nobody. Yakinkan bahwa user dan group dengan nama ini ada dalam sistem anda. Anda dapat juga menggantinya dengan user dan group apa saja, tapi ingat bahwa server anda akan dijalankan menggunakan status UID dan GID yang anda berikan. Berikanlah izin akses yang seminimal mungkin untuk menghindari hole atau kebocoran (ketidak amanan). Contoh penggunaan perintah User dan Group adalah
User    www
Group  www
Contoh lain menggunakan UID dan GID:
User    #-1
Group  #-1
ServerName www.host.domain
Perintah ServerName berfungsi untuk men-set nama server anda.Gunakan nama server menurut standar fqdn (fully quailified domain name) dan harus merupakan nama yang ada dalam DNS (Domain Name Service) jaringan anda. Jika anda mengadministrasi DNS pada jaringan anda, tambahkan sebuah alias CNAME untuk host yang menjadi webserver anda. www.host.domain adalah nama dari host anda, jadi dari client webserver seperti netscape tinggal di ketik http://www.hostname.domain.
ServerRoot /usr/local/apache
Perintah ini men-set letak direktori yang berisi semua file-file konfigurasi maupun file binari (eksekusi). Pada contoh diatas adalah direktori /usr/local/apache. Disinilah diletakkan semua file konfigurasi dan perintah.

DocumentRoot /usr/local/apache/htdocs
Perintah ini men-set lokasi direktori web yang akan di-terbitkan sebagai webpage.
Standarnya, file ini terletak pada direktori /usr/local/apache/htdocs
UserDir public_html
Perintah ini digunakan untuk menyatakan letak direktori homepage bagi masing-masing user pada sistem Unix tempat Webserver anda di install. Jika perintah ini di-set, maka tiap user tinggal memebuat direktori public_html didirektori homenya, misal nama usernya : tono, maka di dalam direktiri ~tono/ dibuat direktori public_html, maka jadilah personal webpage milik tono.

2. Mengedit file konfigurasi srm.conf
File srm.conf adalah file konfigurasi sumber. File ini mengendalikan semua yang berhubungan dengan letak dokumen-dokumen web, direktori program CGI, dan konfigurasi sumber lainnya.


  1. 3. Mengedit file konfigurasi access.conf

File access.conf berfungsi mengendalikan konfigurasi hak-hak akses pada web server anda. Jadi secara keseluruhan akan mengendalikan masalah sikuritas webserver anda.
Sama seperti pada file httpd.conf, pada file ini juga dikenal perintah, yang memakai tanda kurung (<Directory direktori/yang/dibatasi>). Pembatasan securitas pada webserver anda dapat dilakukan dengan menyatakan direktori yang akan anda batasi penggunaannya dalam bentuk :
<Directory /usr/local/apache/htdocs>
Options Indexes FollowSymlinks
AllowOverride None
</Directory>
Perintah-perintah yang berada diantara <Directory /usr/local/apache/htdocs> dan </Directory> akan berlaku hanya pada direktori /usr/local/apache/htdocs dan direktori dibawahnya, kecuali jika anda membuat pengecualian lagi dengan menyatakannya seperti diatas untuk direktori tertentu, misal direktori images dibawah direktori htdocs.
Perintah Options berfungsi untuk menyatakan jenis pengaksesan apa saja yang boleh terjadi pada direktori yang di-set. Perintah yang berhubungan dengan Options adalah perintah All, Indexes, FollowsSymlinks, ExecCGI, Includes, InculesNOEXEC, mulitiviews dan SymlinksIfOwnerMatch.
Perintah AllowOverride menyatakan apakah perintah-perintah yang dinyatakan pada file access control .htaccess dapat menolak konfigurasi akses yang dinyatakan dalam file access.conf. Perintah yang berhubungan dengan AllowOverride adalah All, None, AuthConfig, FileInfo, Indexes, Limit, dan Options.
V. Mengonfigurasi dan menjalankan webserver pada inetd server.

Biasanya, apache beroperasi pada mode standalone. Bagaimana caranya sistem beroperasi tergantung dari konfigurasi perintah ServerType dalam conf/httpd.conf.
Sebuah server Standalone mempunyai performansi yang lebih baik dibanding server yang beroperasi lewat inetd (internet daemon), sebuah server akan hidup tiap kali sebuah permintaan diterima di port HTTP.
Konfigurasi standar untuk ServerType adalah Standalone, kecuali anda mempunyai trafik site yang sangat kecil, jangan mengubah konfigurasi ini. Tapi inetd server dapat digunakan untuk keperluan mengetes konfigurasi karena server akan membaca ulang semua konfigurasinya tiap kali ada permintaan. Pada server Standalone, anda harus menghidupkan secara manual servernya agar perubahan pada file-file konfigurasi diketahui oleh server.
Untuk mengoperasikan webserver dalam mode inetd, bagian perintah “ServerType” dalam file conf/httpd.conf ditambahkan pilihan “inetd” bukan “standalone”
ServerType inetd
Jika ServerType sudah di-set inetd, maka perintah port dapat anda hapus karena tidak berpengaruh pada server inetd, sebab inetd server mengatur sendiri port mana yang digunakan sesuai dengan konfigurasi pada file “services” di direktori /etc sistem operasi unix, selain itu juga inetd melakukan binding antara port dengan software webservernya.

Mengonfigurasi inetd
Inetd dkenal dengan sebutan “Internet superserver.” Yang beroperasi ketika mesin booting, diatur oleh file /etc/rc. Sekali menyala, inetd akan mendengarkan koneksi pada port soket internetnya. Jika ada koneksi, inetd akan menyalakan program yang bertanggung jawab untuk menangani port itu. Jika permintaan telah dilayani dan program selesai menanganinya, inetd akan meneruskan mendengar permintaan tambahan pada port itu.
Agar Apache dapat bekerja dengan inetd, anda harus mengedit file /etc/inetd.conf dan /etc/services. Mengonfigurasi sebuah inetd server membutuhkan lebih banyak konfigurasi sistem dibanding tipe standalone.
Pertama-tama, anda perlu mengedit file /etc/services. File ini berisi database informasi mengenai semua servis yang tersedia di internet. Tiap servis direpresentasikan dengan satu baris yang berisi infomasi berikut:
Official service_name    Port_number    Protocol_name  Aliases
Tiap entri dipisahkan dengan tab atau space. Entri untuk httpd akan terlihat seperti ini :
http portnumber/tcp httpd httpd
Port Pada sistem operasi UNIX terdiri dari 0 sampai 65535, tapi hanya 1024 port saja yang baru di pesan. Port yang sudah dipesan ini hanya dapat di bind oleh superuser, jadi jika anda mau menggunakan port 80 (port standar webserver) anda membutuhkan akses superuser atau akses setarafnya. Port lain yang digunakan adalah port 8080 dan biasanya port inilah yang digunakan oleh inetd server.
Berikutnya adalah mengedit file /etc/inetd.conf agar inetd mendengar tiap permintaan untuk httpd.Tiap baris dalam inetd.conf (kecuali komentar) berisi informasi berikut :
namaservis tipesocket Protokol Wait/no_wait User Serverprogram
Server_program arguments
Contoh untuk konfigurasi webserver adalah sebagai berikut :
httpd stream tcp nowait www /usr/local/apache/bin/httpd httpd -f /usr/local/apache/conf/httpd.conf
Seperti telah dijelaskan sebelumnya bahwa server standalone pada port 80 harus dijalankan menggunakan akses root. Disamping itu juga akses root diperlukan untuk mengubah UID dan GID dari proses bawahannya, Saat server standalone dihidupkan, dia akan membuat beberapa proses dibawah koordinasinya. Semua panggilan web akan ditangani oleh bawahan-bawahannya memakai UID dan GID yang di set di konfigurasi conf/httpd.conf, sedang tugas server utamanya hanya membuat dan membunuh bawahannya ini bila selesai tugasnya. Karena itu server standalone lebih secure dibanding inetd. Berbeda dengan inetd, UID dan GID unruk menjalankan webserver adalah root sehingga kemungkinan seseorang mencurangi server anda lebih besar. Hal ini terjadi karena pada server inetd, tidak terbentuk proses bawahan melainkan menggunakan UID dan GID root untuk menangani panggilan.
Setelah menambahkan entri httpd pada file /etc/inetd.conf, anda perlu me-restart inetd, dengan cara mencari nomor proses dari inetd, dan mengirim sinyal HANGUP. Ketik perintah berikut :
kill -HUP InetdProcessID
Ganti InetdProcessID dengan nomor proses yang didapat dari perintah ps –ax. Misal nomornya adalah 767, maka perintahnya adalah :
Kill –HUP 767
Inetd akan membaca ulang file konfigurasinya di /etc/inetd.conf dan /etc/services dan akan mulai mendengar port 80 ( sesuai dengan /etc/services)
VI. Menjalankan Web Server
Sebelum anda menjalankan webserver anda pertama kalinya, anda perlu membuat dokumen HTML dulu. Jika anda telah mengambil source code penuh dari homepage resmi webserver Apache, anda tidak perlu lagi membuat dokumen HTML untuk mengetes web anda. Berikut contoh file HTML dengan nama index.html dan diletakkan di Document root anda (sebelumnya disebutkan ada di /usr/local/apache/htdocs):
<HTML>
<HEAD>
<TITLE>Apache Server</TITLE>
</HEAD>
<BODY BGCOLOR=”#ffffff” LINK=”#000080″ VLINK=”#000080″>
<H1><CENTER>Apache Server</CENTER></H1>
<H2><CENTER>Selamat, anda telah berhasil menginstalasi webserver Apache </CENTER></H2>
<H3>Berikut ada beberapa site yang menjelaskan tentang server Apache : </H3>
<UL>
<LI>Homepage resmi <A HREF=”http://www.apache.org”>Group Apache.</A>
<LI>Homepage resmi <A HREF=”http://www.us.apache-ssl.com”>
Pengembang Interkoneksi </A>Apache-SSL-US (Sebuah sistem SSL yang cocok dengan browser Netscape menggunakan server Apache khusus user di Amerika Serikat).
<LI>Homepage resmi <A HREF=”http://www.algroup.co.uk/Apache-SSL”>Apache-SSL</A> (Sebuah sistem SSL yang cocok dengan browser Netscape menggunakan server Apache khusus untuk user di luar Amerika Serikat).
<LI><A HREF=”http://www.zyzzyva.com/server/module_registry/”> Registeri Modul Apache </A>, site dimana anda akan menemukan informasi mengenai modul 3 party Apache dan pengembangan yang lainnya.
<LI><A HREF=”http://www.apacheweek.com”>Apache Week Home</A>, tempat anda menemukan tutorial mingguan Apache.
<LI><A HREF=”http://www.ukweb.com”>Web layanan teknis server Apache</A>
<LI><A HREF=”http://www.fastcgi.com”> Website FastCGI </A>
</UL>
<P><STRONG> Deja News, mesin pencari berita USENET yang cukup berguna :</STRONG>
<FORM ACTION=”http://search.dejanews.com/dnquery.xp” METHOD=POST>
<P><CENTER><STRONG>Mencari cepat untuk frase :</STRONG> <INPUT NAME=”query” VALUE=”Apache” SIZE=”37″><INPUT TYPE=”submit” VALUE=”Cari !!!”><INPUT NAME=”defaultOp” VALUE=”AND” TYPE=”hidden”><INPUT NAME=”svcclass” VALUE=”dncurrent” TYPE=”hidden”><INPUT NAME=”maxhits” VALUE=”20″ TYPE=”hidden”>
</CENTER></FORM>
</BODY>
</HTML>
Tampilan pada browser Internet Explorer 4.0 sebagai berikut :
VII. Menjalankan Standalone Server
Jika anda mengonfigurasi server anda untuk beroperasi dengan standalone server, anda harus menjalankan httpd anda secara manual, yaitu dengan mengetik perintah berikut :
/usr/local/apache/httpd -f /usr/local/apache/conf/httpd.conf
Ingatlah bahwa jika anda menggunakan port di bawah 1025, maka anda membutuhkan akses root untuk menjalankan perintah diatas. Hanya proses yang dimiliki oleh root yang dapat mengubah UID dan GID mereka sesuai dengan perintah User dan Group dalam file conf/httpd.conf. Jika anda menjalankan standalone server ini dengan UID lain, maka dia akan menggunakan UID dan GID user ini. Sebagai akibat mungkin tidak dapat membaca beberapa file yang ditolak aksesnya oleh sistem.
VIII. Memulai dan Menghentikan Server Apache
Server Apache, httpd hanya memiliki beberapa pilihan baris perintah yang berfungsi untuk men-set beberapa standar dimana httpd akan mencari perintah-perintah konfigurasinya. Server Apache httpd dapat mengerti beberapa bentuk perintah berikut :
httpd [-d ServerRoot] [-f FileKonfigurasi] [-x] [-v] [-?]
Pilihan –d menyatakan kembali letak direktori ServerRoot yang telah dinyatakan pada file conf/httpd.conf.
Pilihan –f menyatakan dimana letak file konfigurasi utamanya ( httpd.conf). Biasanya ada pada direktori /usr/local/apache/conf ( direktori conf dibawah ServerRoot).
Pilihan –x digunakan oleh para pengembang Apache sebagai bantuan untuk mendebug dan bukan digunakan pada mode operasi normal. Dengan pilihan –x, server hanya menjalankan proses tunggal tidak membuat proses bawahannya.
Pilihan –v menampilkan versi server apache anda dan kemudian mematikan dirinya sendiri.
Pilihan -? Menampilkan informasi berikut :
Usage: httpd [-d directory] [-f file] [-v]
-d directory : specify an alternate initial ServerRoot
-f file : specify an alternate ServerConfigFile
Untuk mematikan server ini digunakan perintah berikut :
kill ‘cat /usr/local/apache/logs/httpd.pid’
dimana /usr/local/apache/logs/httpd.pid adalah letak file httpd.pid sesuai dengan konfigurasi pada httpd.conf yaitu pada baris perintah
PidFile /usr/local/apache/logs


Script untuk menyalakan dan mematikan server
Pada apache versi 1.3.0 keatas sudah ada file script untuk menyalakan dan mematikan webserver Apache tanpa menggunakan perintah yang panjang sekali. Nama script ini adalah apachectl atau httpdctl pada beberapa versi yang lain.
Anda dapat membuat sendiri script ini dan isi script yang paling sederhana berisi perintah-perintah berikut :
#!/bin/sh
/usr/local/apache/httpd –f /usr/local/apache/conf/httpd.conf
Dan jangan lupa untuk membuat file script anda executable yaitu dengan melakukan perintah berikut :
cd letak_script_anda
chmod 755 file_script_anda
Demikian juga bila anda ingin membuat script penyetop servernya. Secara sederhana anda tinggal mengirimkan sinyal terminasi ( perintah kill –TERM ) kepada server utama anda ( dapat diketahui menggunakan ps –ax ). Berikut contoh yang paling sederhana :
#!/bin/sh
# Script menyetop Apache
kill –TERM ‘cat /usr/local/etc/httpd/logs/httpd.pid’
Selain menyalakan dan menyetop server, perlu juga dibuat script untuk restart server. Hal ini dapat dilakukan dengan mengirimkan sinyal HANGUP (perintah kill –HUP). Contoh paling sederhana adalah :
#!/bin/sh
#Stop Apache Script
kill –HUP ‘cat /usr/local/etc/httpd/logs/httpd.pid’
Sangatlah memudahkan jika server anda dapat secara otomatis menyala sendiri pada waktu anda mem-boot komputer server anda. Hal ini dapat anda lakukan dengan meletakan baris perintah menyalakan webserver dalam file startup unix antara lain di file /etc/rc.local. Tambahkan baris perintah dibawah ini kedalam file tersebut :
echo ‘starting httpd server’
if [ -f /etc/rc.httpd ]; then
sh /etc/rc.httpd
fi
Buat file baru dengan nama rc.httpd dalam direktori /etc yang berisi perintah berikut:
#!/bin/sh -u
cd /usr/local/apache/
./httpd -d /usr/local/apache/ -f conf/httpd.conf
Bisa saja anda meletakan isi file rc.httpd kedalam file rc.local, tapi akan merepotkan bila kita tidak ingin server hidup pada suatu saat karena alasan tertentu, berarti harus merubah isi rc.local. lagi. Jika dibuat dalam file rc.httpd, tinggal dubah saja nama rc.httpd-nya mengakibatkan perintah tidak dijalankan.
IX. Mencoba operasi server

Jika file-file konfigurasi sudah diedit dengan benar, anda seharusnya sudah dapat mengoperasikan webserver Apache anda. Tampilan yang akan muncul pada website anda seharusnya persis seperti HTML yang anda buat sebelumnya.
Andai terjadi kesalahan pada konfigurasi, webserver Apache cukup baik dalam memberi petunjuk kesalahan yang terjadi. Jika server tidak dapat menemukan beberapa file konfigurasinya, maka akan muncul pesan seperti ini :
httpd: could not open document config file /usr/local/etc/httpd/conf/httpd.conf
fopen: No such file or directory
Untuk mengatasinya periksalah lagi file konfigurasi anda. Biasanya terjadi kesalahan pada peletakan direktori yang salah.
Masalah lainnya boleh jadi memerikan buangan (dump) seperti tulisan ini :
httpd: could not bind to port
bind: Address already in use
Kedua kesalahan ini biasanya terjadi jika anda menjalankan server tidak sebagai user dengan akses root. Juga karena portnya sudah digunakan oleh web server lain. Gunakan perintah ps untuk melihat apakah ada server lain yang sudah beroperasi pada sistem anda.
ps -ax | grep httpd
Terkadang server Apache dapat menunjukan secara langsung kesalahan yang anda buat, tapi kadang anda terpaksa mencarinya dengan hati-hati. Hal pertama yang anda harus lakukan adalah memeriksa file error_log dan access_log. Juga perlu diperiksa apakah ada file core pada ServerRoot anda. Jika ada, berarti terjadi kerusakan pada binari anda sehingga anda harus mengulang mengompile binari dengan baik.

Tidak ada komentar:

Posting Komentar