Lighttpd - włączenie obsługi PHP.

14 września, 2008

Tradycyjnie serwer WWW równa się apache (lub IIS), ale istnieją też inne rozwiązania. Apache przy domyślnej instalacji ma dwie zalety: działa i łatwo znaleźć pomoc/howto/dokumentację.
Ale istnieją także inne serwery WWW. Przykładem może być lighttpd lighttpd. Z lighttpd korzytają m.in. Wikipedia i YouTube..

Niestety, domyślnie paczka debianowa (Etch, ale pewnie inne wersje też) nie ma wsparcia dla PHP (wrzucimy index.php do /var/www i nie wyświetli strony). Szybka (quick'n'dirty) metoda na uruchomienie obsługi PHP poniżej.

Aby działało PHP5 należy w lighttpd.conf zamieścić linie:

            "mod_access",
            "mod_alias",
            "mod_accesslog",
            "mod_fastcgi",

oraz

fastcgi.server = ( ".php" => ((
        "bin-path" => "/usr/bin/php5-cgi",
        "socket" => "/tmp/php.socket"))
)

oraz zainstalować paczkę php5-cgi.

Nieco lepsze (poprawna obsługa plików, jeśli nie podano rozszerzenia) jest:

fastcgi.server = ( ".php" => (( "bin-path" => "/usr/bin/php4-cgi",
        "socket" => "/tmp/php.socket" )),
        ".phtml" => (( "socket" => "/tmp/php.socket-0" ))
        )

Oczywiście da się także korzystać z PHP4. Należy zmienić (zarówno w konfigu, jak i w doinstalowywanej paczce na php4-cgi).

Serwerek jest lekki - z 64 MB RAM, przy uruchomieniu prostej stronki i skrypciku PHP zajął 0.2 do 2% (po wywołaniu strony) dostępnej pamięci. Benchmark lighttpd.

Zaznaczam, że powyższa konfiguracja nie jest przewidziana/testowana do obsługi dużego ruchu i jest mało elegancka - chodziło o samo uruchomienie obsługi PHP. Na pewno bardziej eleganckim i "Debian way" sposobem uaktywnienia mod_cgi jest wykorzystanie /etc/lighttpd/conf-available i /etc/lighttpd/conf-enabled. Liczę na inne uwagi.

1. Michał Górny napisał(a):
14 września 2008, 10:31:04

No offence, ale ten wstęp brzmi jak z blog-it ( ;.

2. Seban napisał(a):
14 września 2008, 10:34:19

Kiedyś korzystałem z lightiego, teraz mam Apache (głownie dla mod_passenger). Jako proxy do Mongreli spisywał się bardzo fajnie. Teraz nie mogę odszukać swojego starego pliku konfiguracyjnego od Lighttpd.
Z ,,alternatywnych’‘ serwerów warto też wspomnieć o nginx.

3. rozie napisał(a):
14 września 2008, 10:51:22

Seban: Prawda jest taka, że Apache jest wygodny, elastyczny i „każdy używa Apache” – dużo modułów, elastyczna konfiguracja (per wirtualka) i wszystko działa (PHP, RoR, co chcesz). Lighttpd to taki minimal do serwowania plików trochę (znam b. mało ludzi, którzy wykorzystują go do czegoś więcej i zwykle wymaga gimnastyki). W sumie Apache też jakoś dużo RAM nie żarł, ale IIRC domyślnie 5 procesów uruchamia, minimalnie 2… A to słabiutka maszyna (PII, 64 MB RAM), więc kiedyś go wymieniłem na lighttpd (ot, serwer jest po to, żeby coś (wygląd) przetestować ew. wystawić coś komuś, kto musi mieć przez HTTP), bo to taki minimal i zen. ;) I tak zostało. No i teraz przy testach potrzebowałem PHP...
Nginx – znam nazwę, nie bawiłem się, bo o ile ludzi używających bardziej produkcyjnie lighttpd znam, o tyle nginx – nie. ;)

4. Seban napisał(a):
14 września 2008, 10:56:50

U mnie w firmie do Railsów używamy nginx + Mongrele. Mój hosting też tak działa (tylko do wyboru mam Mongrel/Thin)

5. Nowaker napisał(a):
14 września 2008, 15:54:10

Lighttpd na moim serwerze spisuje się całkiem dobrze w produkcji. Nie miałem żadnych specyficznych wymagań, które tylko Apache oferuje swoim wachlarzem modów, więc Lighty stoi już sobie prawie rok. Za 2 tygodnie będzie rocznica oddania mojego serwera rackowego do kolokacji ;)

6. Karburator napisał(a):
14 września 2008, 16:47:08

Macie wrażenie, że rozwój lighttpd jakby trochę stanął w miejscu?
Nie wiem czy autor udał się na urlop, ale od jakiegoś miesiąca zmian w svn coraz mniej…

7. rozie napisał(a):
14 września 2008, 16:50:13

Karburator: Bywa. Szczerze mówiąc i tak używam starej, etchowej wersji, więc co za różnica (na krótszą metę, przynajmniej)?

8. zen napisał(a):
14 września 2008, 22:06:16

Lighty jest używany również na naszym podwórku przez największe serwisy. Rzeczywiście konfig nie jest trywialny, ale za to jest Lua, o której nie wspomniałeś, a która robi cuda.
Na produkcji dodatkowo dochodzi kwestia odpowiedniego skonfigurowania FCGI. Ja borykam się od dawna z nierówną pracą i wysypywaniem się backendów, ale to przy obciążeniach rzędu 50+ requestów/s. Czeka mnie pewnie pare tygodni testów przy różnych ustawieniach FCGI.
Dla statycznego kontentu: bez zastanowienia; dla PHP: jak kto lubi ;)

9. zen napisał(a):
14 września 2008, 22:12:27

Tak off top: czy ty kiedyś miałeś coś wspólnego z PDDP?

10. rozie napisał(a):
15 września 2008, 07:18:20

zen: PDDP – owszem, to ja. Ale to już na jabberze porozmawiamy. ;)

11. Spo0lsh napisał(a):
15 września 2008, 15:26:05

thttp jescze ;)

12. paszczak000 napisał(a):
17 września 2008, 13:43:26

Kurka… wczoraj się męczyłem z dodaniem PHP do Lighttpd, a dziś widzę ładny art :) Supcio ;-)

13. Yampress napisał(a):
07 września 2010, 19:39:23

najnowszy lighttpd ma juz rozbity konfig na kilka plikow