Existuje webový server, který je velmi konzervativní, pokud jde o využití zdrojů a nároky na paměť. Tento server je známý jako lighttpd (vyslovuje se „lighty“). Nastavení jedné instance lighttpd může být trochu složitější, takže tento návod slouží jako jasný návod, jak správně nakonfigurovat server lighttpd na Linuxu.
Porozumění konfiguračnímu souboru pro každou instanci webového serveru je klíčem k úspěšnému spuštění lighttpd. Tento tutoriál také pokryje přidání podpory PHP pro vaše webové servery.
Lighttpd Možnosti konfigurace
Po instalaci lighttpd začneme vytvořením souboru, který definuje nastavení webového serveru. Nazvěme to ‚example.conf‘ v domovském adresáři. Jednoduše zkopírujeme výchozí konfigurační soubor nalezený v /etc/lighttpd. Toto je standardní soubor „.conf“, takže platí běžná pravidla syntaxe, to znamená, že například všechny znaky za „#“ jsou považovány za komentáře.
$ cp /etc/lighttpd/lighttpd.conf ~/webservers/example.conf $ vim ~/webservers/example.conf # Or whatever editor you wish
Serverové moduly
Pole ‚server.modules‘ obsahuje pole modulů, které server používá. Nyní do seznamu přidáme další dva:„mod_fastcgi“ a „mod_setenv“. Mod_fastcgi nám umožní přidat podporu PHP. Mod_setenv nám umožní předat hlavičku, která serveru umožní odesílat požadavky do jiných domén, což je užitečné pro načítání externích knihoven.

POZNÁMKA:Pokud chcete do seznamu zahrnout také ‚mod_status‘, vložte před něj ‚mod_setenv‘.
Nastavení serveru
Podívejme se na následující sekci:
server.document-root = "/var/www/html" server.upload-dirs = ( "/var/cache/lighttpd/uploads" ) server.errorlog = "/var/log/lighttpd/error.log" server.pid-file = "/var/run/lighttpd.pid" server.username = "www-data" server.groupname = "www-data" server.port = 80
Tato pole jsou skutečně samozřejmá. Toto jsou výchozí hodnoty nalezené v konfiguračním souboru v /etc/lighttpd . Protože se jedná o nový soubor, zkopírovaný z výchozího konfiguračního souboru, můžeme změnit, co chceme. Kořen dokumentu určuje nejvyšší úroveň adresáře viditelnou pro webový server. Pole ‚upload-dirs‘ obsahuje pole adresářů, do kterých se mají nahrávaná videa ukládat. Uživatelské jméno a název skupiny odpovídající těm, které se nacházejí ve vašem systému. Ve výchozím nastavení je vlastníkem souborů vytvořených touto instancí lighttpd uživatel „www-data“. Budete se muset ujistit, že do protokolu chyb lze zapisovat pomocí „www-data“ (popsáno o něco později).
V této konfiguraci změňme adresář kořenového adresáře dokumentu na ‘/var/www/mysite/html‘ .Dále změňte protokol chyb na jiný název:„/var/log/lighttpd/mysite/error.log“. Pak změňte port na 8080, chcete-li.
Podpora FastCGI a „setenv“
Protože jsme přidali tyto dva moduly:budeme muset vložit konfigurace do souboru pod nastavení serveru (pokud jsou spustitelné soubory pro „php“ a „php-cgi“ umístěny jinde, uveďte je místo toho):
fastcgi.server = ( ".php" => (( "bin-path" => "/usr/bin/php-cgi", "socket" => "/tmp/php.socket" )))cgi.assign = ( ".php" => "/usr/bin/php" )
Udělali jsme lighttpd, že pokud byl ze serveru požadován PHP skript, měl by spustit PHP interpret na počítači, aby jej zpracoval. Modul FastCGI je to, co používáme ke spouštění skriptů PHP.
Pokud potřebujete povolit sdílení zdrojů mezi zdroji (CORS), přidejte tento řádek níže. setenv.add-response-header =( “Access-Control-Allow-Origin” => “*”) Chcete-li zadat pouze jednu doménu, nahraďte “*” požadovanou doménou.
Zde je obsah konfiguračního souboru:

Jak nainstalovat PHP
Pokud chcete podporu PHP, bude nutné nainstalovat PHP, konkrétně balíčky ‚php‘ a ‚php-cgi‘. Pro podporu MySQL je třeba nainstalovat také „php-mysql“. Webový server jsme již nakonfigurovali v konfiguračním souboru tak, aby umožňoval spuštění kódu PHP.
Pár kroků navíc
Soubor protokolu
Protože umístění souboru protokolu, který jsme zadali v konfiguraci, je ve složce, která ještě neexistuje, lighttpd při spuštění vyvolá chybu. Nejprve budeme muset vytvořit složku:
$ sudo mkdir /var/log/lighttpd/mysite
Dále vytvořte soubor protokolu a změňte vlastnictví uživatele a skupiny souboru na uživatele „www-data“, jak je uvedeno v konfiguračním souboru.
$ sudo touch /var/log/lighttpd/mysite/error.log $ sudo chown www-data /var/log/lighttpd/mysite/error.log $ sudo chgrp www-data /var/log/lighttpd/mysite/error.log
Poté se pokusíme spustit server pomocí našeho konfiguračního souboru:
$ sudo lighttpd -f mysite.conf

Zkopírujte soubor indexu
Nezapomeňte zkopírovat soubor indexu nalezený v adresáři /var/www/html do kořenového adresáře:
$ sudo cp /var/www/html/index.lighttpd.html /var/www/html/mysite/index.html
Spuštění serveru
Doufejme, že se lighttpd spustí na pozadí bez tiskových chyb na obrazovce. Narazil jsem však na problém s jedním z příkazů „include_shell“ v konfiguraci:
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
Pokud narazíte také na tento problém, jednou z možností je deaktivovat jej (přilepením „#“ na začátek řádku).
#include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
Pokud to chcete nebo potřebujete opravit, další možností je otevřít skript Perl uvedený v příkazu include_shell a změnit jeden z řetězců.
Najděte tento řádek:
my $enabled = “conf-enabled/*.conf”;
Problém je v tom, že se jedná o adresář, na který tento skript odkazuje, ale jsou neúplné. Udělal jsem to, že jsem přidal místo, kde se říkalo, že se adresář nachází, do proměnné $enabled.
my $enabled = “/etc/lighttpd/conf-enabled/*.conf”;

Použití změn
Po změně konfiguračního souboru pro konkrétní server byste měli tuto instanci lighttpd zabít a restartovat. PID tohoto serveru lze snadno najít pomocí příkazu „ps“.

Pokud máte spuštěnou pouze jednu instanci lighttpd, jednoduše spusťte příkaz ‚killall‘.
$ sudo killall lighttpd
Zobrazit ve vašem prohlížeči
Abyste si ověřili, že váš server běží a funguje správně, otevřete webový prohlížeč (ať už je to jakýkoli) a do adresního řádku zadejte „localhost:8080“ nebo „127.0.0.1:8080“. Pokud se stránka objeví s názvem „Placeholder Page“, váš server běží a doručuje HTML stránky správně.
Odstraňování problémů
Pokud narazíte na problémy při spouštění serveru nebo i poté, možná budete muset problém vyřešit. Zde je několik příkladů a jak překonat zde nalezené problémy.
Soubory se stahují namísto správného zacházení
Pokud jste se pokusili otevřít svou stránku index.html ve svém webovém prohlížeči a on převzal iniciativu ke stažení souboru namísto jeho vykreslení, možná nemáte správně nakonfigurované typy MIME.
Ujistěte se, že se provádí skript Perl pro jejich konfiguraci.
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
Tento příkaz nakonfiguruje váš webový server tak, aby správně zpracovával různé typy souborů.
Skripty PHP se nespouštějí
Ujistěte se, že máte nainstalované PHP a že konfigurační soubor obsahuje nastavení uvedená v tomto návodu.
Chyby HTTP 500
Tyto chyby vyžadují další zkoumání. Jedním z viníků může být chyba v kódu PHP. Ať už je příčina jakákoli, přečtěte si soubor protokolu, abyste zjistili, co se stalo.
Závěr
Měli byste mít správně nakonfigurovaný webový server, který úspěšně běží s lighttpd. Pokud potřebujete více než jeden lighttpd instance běží, ujistěte se, že porty uvedené v každém konfiguračním souboru se navzájem liší, jinak lighttpd vyvolá chybu.
Malý tip na kvalitu života
Soubory můžete spravovat, aniž byste museli spouštět editory jako root tím, že přenecháte plné vlastnictví adresáře sobě:
$ sudo chown -R your_username /var/www/html/mysite $ sudo chgrp -R your_username /var/www/html/mysite