Podstawy konfiguracji modułów Lighttpd

Konrad Kowalski
  • Konrad Kowalski
  • 15/01/2011
  • Lighttpd
  • 0 komentarzy
Lighttpd

Moduły serwera lighttpd rozszerzają jego możliwości i funkcjonalność. Możemy dokonać ich konfiguracji na kilka sposobów. Pierwszą możliwością jest konfiguracja bezpośrednio w głównym pliku konfiguracyjnym lighttpd.conf, który znajduje się w w katalogu /etc/lighttpd/.

W głównym pliku konfiguracyjnym znajdziemy m.in. – jakie moduły zostały aktywowane (choć mogą nie być tu wymienione wszystkie – gdyż część plików konfiguracyjnych może leżeć w katalogu /conf-enabled/ – mają one specjalną dyrektywę, która nakazuje lighttpd załadowanie ich przy starcie):

server.modules              = (
            "mod_access",
            "mod_alias",
...
#           "mod_rewrite",
#           "mod_redirect"
)

Na powyższym skróconym listingu widzimy, że aktywowane są m.in. mod_access i mod_alias a nie używane są mod_rewrite i mod_redirect.

Aby aktywować lub dezaktywować konkretny moduł w pliku lighttpd.conf należy od komentować lub dopisując odpowiednie dane w sekcji server.modules

server.modules              = (
           "moduł_aktywny",
            #mod_nieaktywny
)

Konfigurację aktywowanych wcześniej modułów możemy również dokonać w lighttpd.conf

Dla przykładu skonfigurujemy teraz „mod_redirect„, który umożliwi nam ustawienie przekierowania z strony www.lighttpd.pl na lighttpd.pl (bez www)

Aby tego dokonać w sekcji server.modules musimy odkomentować (albo dopisać) odpowiednią linijkę

"mod_redirect",
server.modules              = (
            "mod_access",
            "mod_alias",
            "mod_redirect",
...
#           "mod_rewrite"
)

i dopisać gdzieś np. na końcu:

## Przekierowanie z www na non-www 
$HTTP["host"] =~ "^www\.(.*)" {
url.redirect = ( "^/(.*)" => "http://%1/$1" )
}

Aby przekierowanie zaczęło działać musimy przeładować konfiguracje:

/etc/init.d/lighttpd force-reload

Jeśli coś poszło nie tak (jakieś błędy składni itp), serwer nas o tym poinformuje podczas ładowania konfiguracji.

Konfiguracja modułów w oddzielnych plikach

Pliki konfiguracyjne Lighttpd znajdują się również katalogach:
/etc/lighttpd/conf-enabled – katalog z plikami konfiguracyjnymi uaktywnionych modułów (dowiązania symboliczne do plików w conf-available)
/etc/lighttpd/conf-available – katalog z plikami konfiguracyjnymi wszystkich modułów

Przykładowa zawartość katalogu conf-enabled

lrwxrwxrwx 1 root root  41 2009-11-25 15:29 05-auth.conf -> /etc/lighttpd/conf-available/05-auth.conf
lrwxrwxrwx 1 root root  40 2009-11-22 16:51 10-cgi.conf -> /etc/lighttpd/conf-available/10-cgi.conf
lrwxrwxrwx 1 root root  47 2009-11-25 15:29 50-phpmyadmin.conf -> /etc/lighttpd/conf-available/50-phpmyadmin.conf

Aby wykonać nasz przykład z przekierowaniem w oddzielnym pliku konfiguracyjnym należy w katalogu /etc/lighttpd/conf-available/ stowrzyć plik o nazwie np. 88-redirect.conf

server.modules                += ( "mod_redirect" )

## Przekierowanie z www na non-www
$HTTP["host"] =~ "^www\.(.*)" {
url.redirect = ( "^/(.*)" => "http://%1/$1" )
}

Uwaga: Tak dodanych modułów w pliku lighttpd.conf nie trzeba dodawać do sekcji server.modules aby zostały aktywowane gdzyż Lighty ładuje je podczas startu na podstawie plików konfiguracyjnych które znajdzie w katalogu /conf-enabled/. A każdy moduł zawiera już w swoim pliku dyrektywe server.modules:

server.modules                += ( "mod_redirect" )

Teraz należy taki moduł aktywować. Możemy to zrobić poprzez dodatkowe 2 proste aplikacji wchodzące w skład serwera

lighty-enable-mod - aktywuje moduł
lighty-disable-mod  - dezaktywuje moduł

Aby aktywować jaki moduł można wydać polecenie lighty-enable-mod nazwamodułu lub bez podawania nazwy lighty-enable-mod

W naszym przypadku:

lighty-enable-mod redirect

redirect – dlatego, że nazwa pliku 88-redirect.conf

Po wykonaniu polecenia program utworzy dowiązanie symboliczne: pliku konfiguracyjnego z katalogu conf-available do conf-enabled.

Aby wprowdzić zmiany przeładowujemy serwer:

/etc/init.d/lighttpd force-reload

I teraz przekierowanie powinno działać

Polecenie lighty-enable-mod bez podania nazwy wyświetli nam wszystkie możliwe moduły do aktywowania i umożliwi nam ich aktywowanie poprzez podanie ich nazwy:

Available modules: auth cgi fastcgi proxy rrdtool simple-vhost ssi ssl status userdir phpmyadmin redirect 
Already enabled modules: auth cgi phpmyadmin 
Enable module: redirect
Enabling redirect: ok
Run /etc/init.d/lighttpd force-reload to enable changes

Aby dezaktywować moduł można użyć polecenia

lighty-disable-mod

które robi to samo co lighty-enable-mod, tylko że w drugą stronę.

Dodaj komentarz