====== Co chcemy osiągnąć? ====== Lighttpd (wym. lighty) to serwer HTTP dostosowany do pracy nawet pod dużym obciążeniem. Jego konfiguracja jest w miarę prosta i logiczna, jednak użytkownicy i administratorzy Apache muszą się "przestawić". Wszędzie obecna wojna exim <-> postfix, irssi <-> BitchX, przeszła i na grunt serwera http i mamy nową wojnę pt. Apache <-> lighttpd którą wygrywa - nignx :). Pod względem wydajności nginx bije wszystkich na głowę, jednak posiada dość specyficzne podejście do konfiguracji, przez co jest przeznaczony dla bardziej zaawansowanych użytkowników i do serwisów które generują bardzo duże obciązenie. W tym artykule pokażemy, jak skonfigurować Lighttpd wraz z obsługą virtual host i php serwowanym przez fast-cgi. ====== Do dzieła! ====== ===== Instalacja podstawowej wersji lighttpd ===== Podstawowa instalacja w PLD ogranicza się do wklepania: # poldek -i lighttpd [...] Run "/sbin/service lighttpd start" to start LigHTTPd webserver. Właściwie serwer jest już gotowy, wystarczyłoby go teraz wystartować, przyjrzyjmy sie jednak kilku podstawowym opcjom w pliku # vim /etc/lighttpd/lighttpd.conf Jeśli dysponujemy kilkoma adresami IP, a chcemy by lighttpd słuchał tylko na jednym z nich, zmieniamy zawartość: server.bind = "60.22.121.11" Możemy również sprawić, by lighttpd przedstawiał się inaczej, poprzez zmianę server header: server.tag = "lighttpd superserver" Teraz już możemy przetestować czy to działa: # service lighttpd start Uruchamianie usługi lighttpd......................................[ ZROBIONE ] Po sprawdzeniu w przeglądarce www czy wszystko działa, możemy spróbować skonfigurować pierwszego virtualnego hosta na lighttpd. ===== Wiele domen, wielu użytkowników, czyli lighttpd w swoim żywiole - simple vhost ===== Na początku instalujemy niezbędny moduł: # poldek -i lighttpd-mod_simple_vhost [...] Przeładowanie usługi lighttpd.................................... [ ZROBIONE ] Następnie edytujemy plik /etc/lighttpd/conf.d/50_mod_simple_vhost.conf i dopisujemy (najlepiej na samym dole): $HTTP["host"] == "pld.thinkspire.org" { server.document-root = "/usr/share/dokuwiki" } zmieniając oczywiście konkretną ścieżkę do dokumentu oraz domenę, przeładowujemy lighttpd. Jeśli mamy w danym katalogu jakiś plik index.* to powinna nam się wyświetlić konkretna strona. Możemy również wyświetlić dodatkowo tzw dir listing - czyli listę plików w danym katalogu. Jeśli mamy zainstalowany moduł lighttpd-mod_dirlisting to w powyższym pomiędzy nawiasami "wąsatymi" dopisujemy: dir-listing.activate = "enable" dir-listing.encoding = "utf-8" #kodowanie listingow dir-listing.hide-dotfiles = "enable" #ta opcja gwarantuje ukrycie plików z kropeczkami na poczatku Kompletny widok poprawnie skonfigurowanego vhosta wraz z dir listingiem powinien wyglądać więc tak: $HTTP["host"] == "pld.thinkspire.org" { server.document-root = "/usr/share/dokuwiki" dir-listing.activate = "enable" dir-listing.encoding = "utf-8" dir-listing.hide-dotfiles = "enable" } ====== Jazda końcowa - czyli PHP przez fastcgi ====== Jak wszystko poprzednie - w lighttpd - nie ma rzeczy trudnych, więc i defaultowa instalacja php w oparciu o fastcgi taka nie będzie. Zacznijmy od instalacji niezbędnych modułów: # poldek -i lighttpd-php-spawned [...] Reloading lighttpd service.........................................[ DONE ] Ponieważ jest to PLD - to wszystko powinno śmigać "od ręki" :) ====== Sprawdzamy czy potrawa wyszła smaczna ====== Standardowo - posługujemy się skryptem phpinfo(), do jego działania potrzebujemy stworzyć plik testowy np test.php, a w jego treści wpisać: i z przeglądarki odwołać się do niego np: http://60.22.121.11/test.php Jeśli wszystko działa poprawnie - powinnismy ujrzeć stronę zaczynającą się od: PHP Version 5.2.6 ====== Dodatki ====== ===== mod_proxy z ssl'em oraz dodatkową autentykacją ===== $HTTP["scheme"]=="https" { # jakiego hosta ma dotyczyć $HTTP["host"] == "source.pld.thinkspire.org" { # troche ograniczamy i modyfikujemy logi - tak by wiedzieć kto i skąd się logował accesslog.filename = "/var/log/lighttpd/source/access.log" accesslog.format = "%h %u %t \"%r\" %>s %b" # miejsce gdzie spoczywa certyfikat ssl.pemfile = "/etc/lighttpd/cert/source.pld.thinkspire.org.pem" # konfiguracja proxy proxy.server = ( "" => ( ( # host do którego ma kierować proxy oraz port "host" => "192.168.1.123", "port" => 8080 ) ) ) # konfiguracja autentykacji # jeden z dostępnych backendów auth.backend = "htpasswd" auth.debug = 2 # plik z hasłami auth.backend.htpasswd.userfile = "/etc/lighttpd/auth/htpasswd.txt" # jakiego zasobu w wyżej wymienionej domenie ma dotyczyć autentykacja auth.require = ( "/" => ( "method" => "basic", "realm" => "Prosze podac instniejacego uzytkownika i haslo", "require" => "valid-user" ) ) } } pozostaje jeszcze tylko wygenerować login i hasło: # htpasswd -m /etc/lighttpd/auth/htpasswd.txt nazwausera