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.simpul.id, maka dokument html yang dirujuk adalah /var/www/index.html. Demikian juga jika yang diakses adalah http://sas.simpul.id/blah/, maka dokumen yang dirujuk adalah /var/www/blah/index.html.
Setelah itu coba akses dengan web browser Anda.
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.simpul.id > /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.
Reff:
Selesai.