Ľahký webový server
Asi väčšina z Vás, keď počuje webový server, si vybaví Apache. Áno webový server Apache je pojem, ale zároveň je to kolos, ktorý je určený pre hosťovanie veľkého počtu domén a spracovanie mnoho tisíc požiadaviek. Pre tých, ktorí taký kolos nepotrebujú, napríklad kvôli systémovým požiadavkám, či komplexnosti nastavenia je tu Odľahčený webový server Lighttpd, skrátene nazývaný aj lighty.
Obsah článku
Lighttpd nie je žiadne B-éčko, podľa domovskej stránky beží na lighttpd aj taký server ako je YouTube. Samozrejme, nie je to Apache, na to upozorňujem, teda nečakajte, že jeho nastavenie a používanie bude také isté, ale trúfam si povedať, že dokáže všetko to, čo dokáže Apache.
Inštalácia
Inštalácia je primitívne nenáročná, keďže je súčasťou distribúcie Debian, stačí použiť balíčkovací systém:
aptitude install lighttpd
V distribúcii je k dispozícii viac balíkov pre lighttpd, a to balíček s dokumentáciou a balíky s modulmi:
lighttpd-doc - Documentation for lighttpd
lighttpd-mod-cml - Cache meta language module for lighttpd
lighttpd-mod-magnet - Control the request handling module for lighttpd
lighttpd-mod-mysql-vhost - MySQL-based virtual host configuration for lighttpd
lighttpd-mod-trigger-b4-dl - Anti-deep-linking module for lighttpd
lighttpd-mod-webdav - WebDAV module for lighttpd
Pri inštalovaní sa server automaticky spustí, takže ho môžete hneď aj vyskúšať, predpokladám, že zadať adresu do webového prehliadača dokážete:

Ak sa Vám server náhodou nespustil a máte vypnuté IPv6 (ako ja), tak
to je tým, že Lighttpd má štandardne zapnutú podporu protokolu IP
verzie 6, pre jej vypnutie nájdite v súbore
/etc/lighttpd/lighttpd.conf
riadok:
server.use-ipv6 = "enable"
a nahraďte parameter enable na disable:
server.use-ipv6 = "disable"
a spusťte (reštartujte) server:
invoke-rc.d lighttpd restart
Tip
Konfigurácia v úložisku bola upravená tak, aby lighttpd používal IPv6, len ak je IPv6 dostpné a teraz vyzerá konfiguračná voľba takto:
## Use ipv6 only if available.
include_shell "/usr/share/lighttpd/use-ipv6.pl"
Základné nastavenie
Začnem základným nastavením, teda nastavením aby server bežal tam kde
chceme my a ako chceme my. Konfiguračný súbor nájdete v spomínanom
súbore /etc/lighttpd/lighttpd.conf
, ktorý má vo východzom
nastavení len 163 riadkov (vrátane prázdnych a komentárov), takže nie
je vôbec rozsiahly. Čo teda znamenajú jednotlivé konfiguračné voľby?
server.modules
Táto voľba udáva, ktoré moduly majú byť pri spustení servera načítané. Predvolene sú to moduly mod_access, mod_alias, mod_accesslog a mod_compress. Ak Vám to nestačí, môžete pridať aj ďalšie, ale pamätajte že jednotlivé moduly majú ďalšie požiadavky na systémové zdroje, takže pridávajte naozaj len tie, ktorébudete používať.
server.document-root
Táto konfiguračná voľby udáva, kde sa nachádza koreň webovej stránky,
predvolene /var/www
. Ak chcete mať svoju stránku uloženú inde,
jednoducho zadajte svoju cestu.
index-file.names
Tu môžme nastaviť, ktoré súbory bude server považovať za indexové. Indexový súbor je ten, ktorý je serverom poskytnutý v prípade, že klient nepožiada o konkrétny súbor, ale zadá len meno adresára. Z predvoleného nastavenia môžete pokojne vyhodiť položku index.lighttpd.html, ktorá zabezpečuje spustenie uvitacej stránky po nainštalovaní. Indexové súbory sú hľadané v uvedenom poradí, takže ak ich máte v adresári viacero, môžete dostať nesprávny výsledok.
server.use-ipv6
Túto voľbu som už spomínal. Vypovedá o používaní protokolu IP verzie 6, ktorému sa asi nevyhneme, ale zatiaľ veľmi rozšírený nie je.
server.port a server.bind
Tieto dve konfiguračné voľby som spojil, pretože spolu úzko súvisia. Voľba server.port udáva, na ktorom porte server očakáva požiadavky (predvolene 80). server.bind sa stará o druhú časť soketu (IP adresu) a určuje na ktorej IP adrese server počúva. Predvolene počúva na všetkých rozhraniach.
server.dir-listing
Táto voľba trochu súvisí s voľbou index-file.names. Ak totiž klient požiada namiesto konkrétneho súboru o adresár, server hľadá najprv indexové súbory. Ak nenájde ani jeden indexový súbor, môže poskytnúť výpis adresára. Či tento výpis poskytne, závisí práve na tejto voľbe. Predvolene je zapnutá, ale je to považované za bezpečnostné riziko, naproti tomu pre testovacie účely je výborná.
server.username a server.groupname
Tu je možné nastaviť používateľa a skupinu, pod ktorými bude server spustený. Podotýkam, že s právami tohoto používateľa (skupiny) bude pristupovať k súborom webovej stránky.
Konfigurácia modulov v Debiane
Konfiguračný adresár lighttpd v Debiane obsahuje (okrem konfiguračného súboru) dva podadresáre, conf-available a conf- enabled.
- conf-available – obsahuje množinu konfiguračných súborov, ktoré obsahujú konfiguračné direktívy potrebné pre načítanie a psustenie modulov servera.
- conf-enabled – na zapnutie modulu pre lighttpd, stačí v
tomto adresári vytvoriť symbolický odkaz na príslušný súbor
.conf
v adresári conf-available.
Ak si chcete v adresári conf-available vytvoriť svoje vlastné
súbory, musia byť pomenované vo forme nn-name.conf
, kde “ nn“
je dvojciferné číslo (použité na určenie poradia načítania súborov).
Zapínanie a vypínanie modulov je možné robiť pomocou dodaných skriptov
lighty-enable-mod a lighty-disable-mod v adresári
/usr/sbin/
:
lrwxrwxrwx 1 root root 17 2008-04-30 21:14 lighttpd-disable-mod -> lighty-enable-mod
lrwxrwxrwx 1 root root 17 2008-04-30 21:14 lighttpd-enable-mod -> lighty-enable-mod
lrwxrwxrwx 1 root root 17 2008-04-30 21:14 lighty-disable-mod -> lighty-enable-mod
-rwxr-xr-x 1 root root 2466 2008-04-13 13:34 lighty-enable-mod
Ako sami vidíte, obsa skripty sú vlastne skript jeden. Ich použitie silne pripomína obdobné skripty v Apache. Ak spustíte skript bez parametrov:
ighty-enable-mod
Available modules: auth cgi fastcgi magnet proxy rrdtool simple-vhost ssi ssl status userdir
Already enabled modules: auth fastcgi phpmyadmin
Enable module:
Skript vypíše zoznam dostupných modulov (z adresára conf-available) aj zoznam už zapnutých modulov (z adresára conf-enabled) a čaká na zadanie mena modulu, ktorý má zapnúť. Po zadaní mena modulu skript ešte napíše návod na znovunačítanie konfigurácie lighty:
Run /etc/init.d/lighttpd force-reload to enable changes
Samozrejme je mmožné použiť aj spôsob:
invoke-rc.d lighttpd force-reload
Použitie skriptu pre vypnutie modulu je obdobné.
PHP
V Debiane je inštalácia PHP o niečo jednoduchšia. Nie je potrebné nič
dopisovať do konfiguračného súboru, pretože ponúka systém podobný tomu
v Apache. V konfiguračnom adresári /etc/lighttpd
môžete nájsť dva
podadresár, a to conf-available
a conf-enabled
. V prvom sú
konfiguračné súbory pre dostupné moduly a v tom druhom zase odkazy na
moduly, ktoré máte v systéme povolené.
Pri bližšom preskúmaní nájdete v adresári conf-available
súbor
10-fastcgi.conf
, ktorý obsahuje nastavenia pre modul fast-cgi
a obsahuje toto:
server.modules += ( "mod_fastcgi" )
## Start an FastCGI server for php (needs the php5-cgi package)
fastcgi.server = ( ".php" =>
((
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/tmp/php.socket",
"max-procs" => 2,
"idle-timeout" => 20,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "4",
"PHP_FCGI_MAX_REQUESTS" => "10000"
),
"bin-copy-environment" => (
"PATH", "SHELL", "USER"
),
"broken-scriptfilename" => "enable"
))
)
Aby bol tento modul načítaný pri štarte lighttpd, stačí urobiť v
adresári conf-enabled
symbolický odkaz na tento súbor:
ln -s /etc/lighttpd/conf-available/10-fastcgi.conf /etc/lighttpd/conf-available/conf-enabled/
A to je všetko. Teda, samozrejme ešte treba reštartovať server, aby sa zmeny konfigurácie aplikovali.