sas.lantip.info

Mengaktifkan Web Server Lighttpd

by salman

Deskripsi mengenai Lighttpd yang bisa didapat dari website resminya adalah:

” Security, speed, compliance, and flexibility — all of these describe lighttpd (pron. lighty) which is rapidly redefining efficiency of a webserver; as it is designed and optimized for high performance environments. With a small memory footprint compared to other web-servers, effective management of the cpu-load, and advanced feature set (FastCGI, SCGI, Auth, Output-Compression, URL-Rewriting and many more) lighttpd is the perfect solution for every server that is suffering load problems. And best of all it’s Open Source licensed under the revised BSD license. “

Catatan ini adalah rekaman yang sempat saya buat ketika membuat aplikasi berbasis web dengan menggunakan PHP dan Python.

Catatan ini ditulis menggunakan distribusi GNU/Linux Debian versi 7 yang dikenal dengan panggilan Wheezy.

Instalasi

Seperti biasa, cara menginstall perangkat lunak di distribusi Debian sangat mudah:

root@charm:~# apt-get install lighttpd

Jika di akhir instalasi ditemui pesan seperti ini:

Starting web server: lighttpd2010-06-13 12:34:14: (network.c.300) can't bind
to port: 80 Address already in use
failed!
invoke-rc.d: initscript lighttpd, action "start" failed.

Berarti ada web server yang telah menggunakan port 80. Dan biasanya adalah Apache. Anda dapat menghapus Apache dari sistem atau menonaktifkannya. Jadi suatu saat memerlukan tidak perlu menginstall ulang.

Untuk menghapus Apache dari sistem:

kripton:~# apt-get --purge remove apache2

Untuk menonaktifkan Apache:

kripton:~# /etc/init.d/apache2 stop
kripton:~# update-rc.d -f apache2 remove

Kemudian aktifkan kembali lighttpd.

kripton:~# /etc/init.d/lighttpd start
Starting web server: lighttpd.

Setelan Default

  • File konfigurasi di /etc/lighttpd dan direktori di bawahnya.
  • DocumentRoot dimana file-file html harus diletakkan adalah /var/www.
  • Skrip-skrip CGI di /usr/lib/cgi-bin, dimana distribusi Debian meletakkan skrip-skrip CGI.
  • File-file log di /var/log/lighttpd, dan akan dirotasi seminggu sekali. Bisa diubah di file /etc/logrotate.d/lighttpd.
  • Default directory index adalah index.html, sehingga jika pengguna mengakses http://sas.lantip.info, maka dokument html yang dirujuk adalah /var/www/index.html. Demikian juga jika yang diakses adalah http://sas.lantip.info/blah/, maka dokumen yang dirujuk adalah /var/www/blah/index.html.

Setelah itu coba akses dengan web browser Anda.

Lighttpd Welcome Page

Lighttpd Welcome Page

Ya! Anda berhasil.

Mengubah Kebiasaan

Alih-alih menggunakan setelan default, kita akan membuat lingkungan baru untuk mempermudah pemahaman atau menyesuaikan dengan proyek yang sedang kita kerjakan. Di akhir tulisan ini kita akan mendapatkan hal-hal berikut:

  • DocumentRoot berada pada direktori /var/www/apps/html
  • Direktori index adalah index.html dan index.php
  • Program-program CGI ada dalam direktori /var/www/apps/cgi-bin

Langkah pertama adalah persiapkan direktori dan file yang diperlukan

charm:~# mkdir -p /var/www/apps/html
charm:~# mkdir -p /var/www/apps/cgi-bin
charm:~# echo charm.lantip.info > /var/www/apps/html/index.html

Langkah kedua sesuaikan konfigurasi dengan mengedit file /etc/lighttpd/lighttpd.conf

charm:~# mv /etc/lighttpd/lighttpd.conf /etc/lighttpd/lighttpd.conf.distrib
charm:~# vi /etc/lighttpd/lighttpd.conf

Isi file adalah:

server.document-root = "/var/www/apps/html"
server.port = 80
server.pid-file = "/var/run/lighttpd.pid"
index-file.names = (
"index.html",
"index.php"
)
server.modules = (
"mod_alias",
"mod_cgi"
)
cgi.assign = (
".pl" => "/usr/bin/perl",
".php" => "/usr/bin/php-cgi",
".py" => "/usr/bin/python"
)
alias.url += (
"/cgi-bin" => "/var/www/apps/cgi-bin"
)
$HTTP["url"] =~ "^/cgi-bin" {
cgi.assign = ( "" => "" )
}
mimetype.assign = (
".png" => "image/png",
".jpg" => "image/jpeg",
".jpeg" => "image/jpeg",
".html" => "text/html",
".txt" => "text/plain"
)

Berikut penjelasan masing-masing kata kunci yang digunakan dalam file konfigurasi.

  • server.document-root, untuk menentukan lokasi root direktori.
  • server.port, untuk menentukan port TCP/IP dimana server akan aktif.
  • server.pid-file, file yang akan menyimpan PID server agar skrip start/stop/restart berjalan dengan benar.
  • index-file.names, menentukan nama file index direktori ketika web server diakses tanpa menyebutkan nama file.
  • server.modules, digunakan untuk memuat modul-modul lighttpd yang diperlukan.
  • cgi.assign, menentukan interpreter yang akan dijalankan ketika sebuah file dengan ekstensi tertentu diakses.
  • alias.url, untuk memetakan URL ke direktori tertentu diluar struktur document root
  • mimetype.assign, mengaitkan ekstensi file dengan sebuah mimetype (jenis file) sehingga web client bisa menentukan langkah yang diambil jika file dengan ekstensi yang sesuai diakses.

Sekarang akses kembali URL yang disebutkan sebelumnya, apa yang berubah? Kira-kira seperti ini halaman yang akan didapat.

Lighttpd Start Page

Lighttpd Start Page

Reff:

Selesai.