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ć:

<?php
phpinfo();
?>

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
pl/przewodniki/lighttpd-czyli-lajtowy-serwer-www.txt · ostatnio zmienione: 2009/08/05 14:44 przez marti
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0 Powered by Lighttpd - fly light