[[oktatas:linux:webszerver|< Webszerver]] ====== Lighttpd ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2011, 2013, 2017 * Licenc: GNU Free Documentation License 1.3 * Web: http://szit.hu ===== Telepítés ===== Telepítéskor ügyeljünk arra, ha egy másik webszerver telepítve van, akkor azzal nincs konfliktusban a csomagkezelőben, azaz feltehető második webszerverként is. apt-get install lighttpd A legújabb verzió letölthető innen: * http://www.lighttpd.net ===== Vezérlés ===== invoke-rc.d lighttpd start invoke-rc.d lighttpd stop invoke-rc.d lighttpd restart ===== Beállítás példák ===== Telepítés után kapunk egy /etc/lighttpd könyvtárat. A beállítások a /etc/lighttpd/lighttpd.conf állományból lehetséges. A dokumentumok helyének gyökere: server.document-root = "/var/www/html" A szerver TCP portja: server.port = 80 Használt modulok megadása: server.modules = ( "mod_access", "mod_rewrite" ) Hibanaplók helye: server.errorlog = "/var/log/lighttpd/error.log" A szerverfolyamat mely felhasználó és csoport nevében fusson: server.username = "www-data" server.groupname = "www-data" Más konfigurációs fájlok beolvasása: include "mas.types.conf" Konfiguráció olvasása egy parancs kimenetéből: include_shell "/usr/local/bin/parancs.pl" ===== Feltételes konfiguráció ===== A legtöbb beállítás konfigurálható feltételesen, és egymásba ágyazva a következő szintaktika szerint: <érték> { ... <érték> { ... beépített: Csak akkor egyezik, ha a szülő is egyezett } } else <érték> { ... az ellenben ha rész } A mezők a következők egyike lehet: ^ Mezőnév ^ Leírás ^ | $HTTP["cookie"] | Sütire (cookie) egyezik | | $HTTP["host"] | Gépnévre (host) egyezik | | $HTTP["useragent"] | Klienségpre egyezik | | $HTTP["referer"] | Hivatkozáson egyezik | | $HTTP["url"] | URL-en egyezik. Ha van beépített rész, akkor inner blokknak kell lennie | | $HTTP["querystring"] | Lekérő sztringre egyezi, ? után (index.php?module=images) | | $HTTP["remoteip"] | Távoli IP-re vagy hálózatra egyezik. IPv6-tal nem működik | | $HTTP["request-method"] | Az 1.4.19-es verziótól. A kérés metódusára egyezik | | $HTTP["scheme"] | Az 1.4.19-es verziótól. Bejövő kapcsolatok által használt sémákra egyezik http vagy https | | $HTTP["language"] | Az 1.4.21-es verziótól. Az Accept-Language fejlécsorra egyezik | | $SERVER["socket"] | Socketre egyezik. Az érték formája ip:port. Az IP opcionális. \\ Csak az egyenlőség (==) támogatott. Használd ezt ha IP/port alapú virtuálhostokat akarsz. | | $PHYSICAL["path"] | Az 1.5.0 verziótól (Debianban még nem ez van). Egy fájl fizikai útvonalára egyezik. (file / cgi script) | | $PHYSICAL["existing-path"] | Az 1.5.0 verziótól (Debian még nem ez van). Csak létehő fájlokra egyezik a helyi fájlrendszerben. file / cgi script | Az operátor a következők egyike lehet: ^ Operátor ^ Érték ^ | == | szöveg egyenlősége esetén egyezik | | != | ha szöveg nem egyenlő, akkor egyezik | | =~ | perl stílusú szabályos kifejezések esetén az egyezés | | !~ | perl stílusú szabályos kifejezések esetén a nem egyezés | ===== Példa ===== A könyvtár listázását tiltjuk a következő helyen /download/ dir-listing.activate = "enable" $HTTP["url"] =~ "^/download/" { dir-listing.activate = "disable" } Tiltva a www.pelda.org minden felhasználónak, aki a 10.0.0.0/8-as hálózatból jön $HTTP["host"] == "www.pelda.org" { $HTTP["remoteip"] != "10.0.0.0/8" { url.access-deny = ( "" ) } } Csak a 200.19.1.5 és 210.45.2.7 címről engedjük, www.example.org/admin/ könyvtárhoz való hozzáférést: $HTTP["host"] == "www.example.org" { $HTTP["remoteip"] !~ "^(200\.19\.1\.5|210\.45\.2\.7)$" { $HTTP["url"] =~ "^/admin/" { url.access-deny = ( "" ) } } }