Instalacja serwera WWW (lighttpd)

Konrad Kowalski
  • Konrad Kowalski
  • 22/07/2009
  • Lighttpd
  • 5 komentarzy
Lighttpd

W poprzednich częściach podjedliśmy już pewne kroki mające na celu podstawowe zabezpieczenie serwera VPS. Teraz przyszedł czas na poszerzenie jego funkcjonalności. W tym artykule przedstawiony zostanie proces instalacji serwera WWW jakim jest Lighttpd oraz wstępne informacje na temat jego konfiguracji.

Dlaczego Lighttpd ?

Niektóre osoby może dziwić taki wybór. W większości przypadków ludzie instalują tradycyjny zestaw – Apache, MySQL i Mod_PHP. Moja decyzja podjęta jest ze względu na dość małą ilość dostępnej pamięci na serwerze VPS (128MB).

Gdybyśmy zainstalowali standardowy pakiet z Apache nasz serwis WWW mógłby „umrzeć straszliwą śmiercią” 😉 Na serwerze procesy Apache z powodu braku odpowiednich zasobów po prostu przestawały by działać.

W systemach obsługiwanych przez wirtualizację Xen serwer zaczął by swapować(taka poduszka bezpieczeństwa – za co cenie bardzo tę platformę), mogło by to doprowadzić do spadku wydajności a w skrajnym przypdaku do jego całkowitego zablokowania.

Na platformie OpenVZ zapewne skończyło by się to padem serwera z powodu znacznego przekroczenia limitów pamięciowych.

Dlatego też z zestawu LAMP (Linux Apache MySQL PHP), aby taka sytuacja nie wytopiła na naszej słabszej maszynie musimy wyrzucić literkę A :). W zamian za to użyjemy Lighttpd, który oferuje podobną funkcjonalność i zużywa ZNACZNIE mniej pamięci. Sam proces Lighttpd na moim serwerze zużywa maksymalnie 2,5MB RAM (RSS):

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
lighty    2614  0.0  2.0  84180  2656 ?        S    11:48   0:00 /usr/sbin/lighttpd

Lighttpd instalacja

Użytkownicy Debiana mają ułatwioną sprawę. Paczka lighttpd znajduje się standardowo w repozytorium. Aby ją zainstalować wystarczy w konsoli wydać polecenie:

# apt-get install lighttpd

Użytkownicy innych dystrybucji mogą również mieć odpowiedni pakiet w repozytorium lub muszą zainstalować go ze źródeł. Jak to zrobić znajdziemy we wpisie Lighttpd – instalacja ze źródeł.

Zarządzanie usługą

Lighttpd możemy kontrolować za pomocą sktyptu:

/etc/init.d/lighttpd opcja

dostępne opcje to:

lighttpd {start|stop|restart|reload|force-reload}
np. /etc/init.d/lighttpd restart

– zrestartuje nam serwer WWW

Pliki konfiguracyjne

Pliki konfiguracyjne Lighttpd znajdują się w katalogu: /etc/lighttpd/

/etc/lighttpd $ ls
conf-available  conf-enabled  lighttpd.conf

lighttpd.conf – główny plik konfiguracyjny
conf-enabled – katalog z plikami konfiguracyjnymi uaktywnionych modułów
conf-available – katalog z plikami konfiguracyjnymi nieuaktywnionych modułów

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/):

server.modules              = (
            "mod_access",
            "mod_alias",
            "mod_accesslog",
            "mod_compress",
#           "mod_rewrite",
#           "mod_evasive"
 )

Możemy znaleźć i ustawić jaki jest główny katalog serwera:

## a static document-root, for virtual-hosting take look at the
## server.virtual-* options
server.document-root       = "/var/www/"

Ustawić gdzie mają lądować logi:

# where to send error-messages to
server.errorlog            = "/var/log/lighttpd/error.log"
# accesslog module
accesslog.filename         = "/var/log/lighttpd/access.log

konfigurować niektóre moduły:

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

i wiele wiele innych rzeczy, których nie będę teraz tutaj opisywał. Dokładniejsze instrukcje jak konfigurować Lighttpd i niektóre jego moduły znajdziecie w innych wpisach.

Włączanie/wyłączanie modułów

Moduły można aktywować lub dezaktywować w pliku lighttpd.conf odkomenowując lub dopisując odpowiednie dane w sekcji:

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

lub prościej 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 nazwylighty-enable-mod
Program wyświetli nam wtedy informacje jakie są już aktywowane i jakie można jeszcze aktywować:

lighty-enable-mod
Available modules: auth cgi fastcgi proxy rrdtool simple-vhost ssi ssl userdir phpmyadmin
Already enabled modules: auth fastcgi phpmyadmin
Enable module: tu podajemy nazwe modułu jaki chcemy aktywować np simple-vhost

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

Teraz możemy przystąpić do konfiguracji modułów, edutując pliki w /conf-enabled/ bądź też dopisując odpowiednie linie w pliku lighttpd.conf.

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. np dla fastcgi:

server.modules   += ( "mod_fastcgi" )

Aby dezaktywować jakiś moduł należy użyć polecenia

lighty-disable-mod

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

5 komentarzy

Możesz dodawać komentarze do tego artykułu.


  • Pomocne informacje.
    Chociaż jeszcze kilka słów na temat konfiguracji, by się przydało(np. jak zrobić, aby stronka była dostępna pod danym adresem :]).
    pozdrawiam

    Pudzian 9 lat temu Odpowiedz


    • Konrad Kowalski

      Więcej artykułów o Lighttpd będzie już niebawem. Chwilowo nie mam za dużo czasu, jak tylko go znajdę to napisze kilka artykułów na ten temat.

      Konrad Kowalski 9 lat temu Odpowiedz


      • Skoro będą – to poczekam.
        Próbowałem z Apache2, ale jakoś nie wychodziło mi skonfigurowanie(brak solidnych poradników/tutoriali).
        Póki co widzę, że lighttpd wygląda łatwiej – nigdy serwerów nie zakładałem, a jak zapewne można się domyślić, chcę się nauczyć). :]
        I pytanie z góry – gdzie wrzucać pliki strony? Zmieniłem domyślną ścieżkę na „/home/pudzian/serwer/www/” – przed wrzuceniem plików jest domyślna strona lighttpd(localhost w przeglądarce), natomiast po wrzuceniu plików (index.html itd.) – po wpisaniu ‚localhost’ wyskakuje ‚403 – Forbidden’.

        Pudzian 9 lat temu Odpowiedz


        • Konrad Kowalski

          Sprawdź prawa dostępu do pliku – mogą one być złe.

          Folder w którym leżą pliki strony musi mieć co najmniej 701 (prawo „x” wykonania) (chmod 701 www).

          Dodatkowo pliki html powinny mieć prawo odczytu 604 (chmod 604 index.html)

          Edit: wszystkie poprzedzające katalogi też muszą mieć prawo „x”
          Czyli /home/ (ten katalog zresztą ma to prawo)
          /pudzian/ , /serwer/ , /www/

          Konrad Kowalski 9 lat temu Odpowiedz


  • Bardzo dobry artykuł, tak dalej :).

    MR 7 lat temu Odpowiedz


Dodaj komentarz