GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Vollständiges Setup-Tutorial für Lighttpd, einen leichten Webserver

Es gibt einen Webserver, der in Bezug auf Ressourcennutzung und Speicherbedarf sehr konservativ ist. Dieser Server ist als lighttpd (ausgesprochen „lighty“) bekannt. Das Einrichten einer lighttpd-Instanz kann etwas schwierig sein, daher dient dieses Tutorial als klare Anleitung zur ordnungsgemäßen Konfiguration eines lighttpd-Servers unter Linux.

Das Verständnis der Konfigurationsdatei für jede Webserverinstanz ist der Schlüssel zum erfolgreichen Ausführen von lighttpd. Dieses Tutorial behandelt auch das Hinzufügen von PHP-Unterstützung für Ihre Webserver.

Lighttpd ​Konfigurationsoptionen

Nach der Installation von lighttpd beginnen wir mit der Erstellung einer Datei, die die Webservereinstellungen definiert. Nennen wir diese „example.conf“ im Home-Verzeichnis. Wir kopieren einfach die Standard-Konfigurationsdatei in /etc/lighttpd. Dies ist eine standardmäßige „.conf“-Datei, daher gelten die normalen Syntaxregeln, d. h. alle Zeichen nach „#“ werden beispielsweise als Kommentare behandelt.

$ cp /etc/lighttpd/lighttpd.conf ~/webservers/example.conf
$ vim ~/webservers/example.conf # Or whatever editor you wish 

Servermodule

Das Feld „server.modules“ enthält eine Reihe von Modulen, die vom Server verwendet werden. Fügen wir der Liste jetzt zwei weitere hinzu:„mod_fastcgi“ und „mod_setenv“. Mod_fastcgi ermöglicht es uns, PHP-Unterstützung hinzuzufügen. Mod_setenv ermöglicht es uns, einen Header zu übergeben, der es dem Server ermöglicht, Anfragen an andere Domänen zu stellen, was zum Laden externer Bibliotheken nützlich ist.​

HINWEIS:Wenn Sie auch „mod_status“ in die Liste aufnehmen möchten, setzen Sie „mod_setenv“ davor.

Servereinstellungen

Sehen wir uns den folgenden Abschnitt an:

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 

Diese Felder sind eigentlich selbsterklärend. Dies sind die Standardeinstellungen, die in der Konfigurationsdatei unter /etc/lightpd zu finden sind . Da dies eine neue Datei ist, die aus der Standardkonfigurationsdatei kopiert wurde, können wir ändern, was wir wollen. Der Dokumentenstamm gibt die oberste Verzeichnisebene an, die für den Webserver sichtbar ist. Das Feld „upload-dirs“ enthält eine Reihe von Verzeichnissen zum Speichern von Uploads. Benutzername und Gruppenname, die denen auf Ihrem System entsprechen. Standardmäßig ist der Benutzer „www-data“ der Eigentümer der Dateien, die von dieser Instanz von lighttpd erstellt werden. Sie müssen sicherstellen, dass das Fehlerprotokoll von „www-data“ (etwas später behandelt) beschreibbar ist.

In dieser Konfiguration ändern wir das Verzeichnis des Dokumentenstammverzeichnisses in ‘/var/www/mysite/html’ .Als nächstes ändern Sie das Fehlerprotokoll in einen anderen Namen:„/var/log/lighttpd/mysite/error.log“. Ändern Sie dann den Port auf 8080, wenn Sie möchten.

FastCGI- und „setenv“-Unterstützung

Da wir diese beiden Module hinzugefügt haben:müssen wir Konfigurationen in die Datei unterhalb der Servereinstellungen einfügen (wenn sich die ausführbaren Dateien für „php“ und „php-cgi“ an anderer Stelle befinden, geben Sie stattdessen diese an):

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

Wir haben lighttpd mitgeteilt, dass, wenn ein PHP-Skript vom Server angefordert wurde, es den PHP-Interpreter auf dem Computer starten sollte, um es zu verarbeiten. Das FastCGI-Modul verwenden wir, um PHP-Skripte auszuführen.

Wenn Sie die ursprungsübergreifende Ressourcenfreigabe (CORS) zulassen müssen, fügen Sie diese Zeile unten hinzu. setenv.add-response-header =( „Access-Control-Allow-Origin“ => „*“) Um nur eine Domäne anzugeben, ersetzen Sie „*“ durch die gewünschte Domäne.

Hier sind die Inhalte der Konfigurationsdatei:

So installieren Sie PHP

Wenn Sie PHP-Unterstützung wünschen, muss PHP installiert werden, insbesondere die Pakete „php“ und „php-cgi“. Für die MySQL-Unterstützung muss auch „php-mysql“ installiert werden. Wir haben den Webserver bereits in der Konfigurationsdatei so konfiguriert, dass PHP-Code ausgeführt werden kann.

Ein paar zusätzliche Schritte

Protokolldatei

Da sich der Speicherort der Protokolldatei, die wir in der Konfiguration angegeben haben, in einem Ordner befindet, der noch nicht existiert, gibt lighttpd einen Fehler aus, wenn es ausgeführt wird. Zuerst müssen wir den Ordner erstellen:

$ sudo mkdir /var/log/lighttpd/mysite ​

Erstellen Sie als Nächstes die Protokolldatei und ändern Sie dann den Benutzer- und Gruppenbesitz der Datei auf den Benutzer „www-data“, wie in der Konfigurationsdatei angegeben.

$ 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 ​

Dann versuchen wir, den Server mit unserer Konfigurationsdatei auszuführen:

$ sudo lighttpd -f mysite.conf 

Kopieren Sie die Indexdatei

Vergessen Sie nicht, die im Verzeichnis /var/www/html gefundene Indexdatei in Ihr Stammverzeichnis zu kopieren:

$ sudo cp /var/www/html/index.lighttpd.html /var/www/html/mysite/index.html   

Server ausführen

Hoffentlich startet lighttpd im Hintergrund ohne Druckfehler auf dem Bildschirm. Ich bin jedoch auf ein Problem mit einem der „include_shell“-Befehle in der Konfiguration gestoßen:

include_shell "/usr/share/lighttpd/include-conf-enabled.pl" 

Wenn Sie auch auf dieses Problem stoßen, besteht eine Möglichkeit darin, es zu deaktivieren (indem Sie ein „#“ am Anfang der Zeile einfügen).

#include_shell "/usr/share/lighttpd/include-conf-enabled.pl" 

Wenn Sie das Problem beheben möchten oder müssen, besteht die andere Möglichkeit darin, das im Befehl include_shell angegebene Perl-Skript zu öffnen und eine der Zeichenfolgen zu ändern.

Suchen Sie diese Zeile:

my $enabled = “conf-enabled/*.conf”; 

Das Problem ist, dass dies ein Verzeichnis ist, auf das dieses Skript verweist, aber unvollständig ist. Ich habe hinzugefügt, wo sich das Verzeichnis in der Variable $enabled befindet.

my $enabled = “/etc/lighttpd/conf-enabled/*.conf”; 

Änderungen anwenden

Nachdem Sie die Konfigurationsdatei für einen bestimmten Server geändert haben, sollten Sie diese Instanz von lighttpd beenden und neu starten. Die PID dieses Servers kann leicht mit dem Befehl „ps“ gefunden werden.

Wenn Sie nur eine Instanz von lighttpd ausführen, führen Sie einfach den Befehl „killall“ aus.

$ sudo killall lighttpd   

In Ihrem Browser ansehen

Um zu überprüfen, ob Ihr Server betriebsbereit ist und ordnungsgemäß funktioniert, öffnen Sie Ihren Webbrowser (was auch immer es ist) und geben Sie in die Adressleiste „localhost:8080“ oder „127.0.0.1:8080“ ein. Wenn eine Seite mit dem Titel „Platzhalterseite“ angezeigt wird, läuft Ihr Server und liefert HTML-Seiten korrekt aus.

Fehlerbehebung

Wenn Sie beim Starten des Servers oder sogar danach auf Probleme stoßen, müssen Sie möglicherweise eine Fehlerbehebung durchführen. Hier sind ein paar Beispiele und wie man die hier gefundenen Probleme überwindet.

Dateien werden heruntergeladen, anstatt richtig behandelt zu werden

Wenn Sie versucht haben, Ihre index.html-Seite in Ihrem Webbrowser zu öffnen, und dieser die Initiative ergriffen hat, um die Datei herunterzuladen, anstatt sie zu rendern, sind Ihre MIME-Typen möglicherweise nicht richtig konfiguriert.

Stellen Sie sicher, dass das Perl-Skript zum Konfigurieren ausgeführt wird.

include_shell "/usr/share/lighttpd/create-mime.assign.pl" 

​Dieser Befehl konfiguriert Ihren Webserver, um verschiedene Dateitypen angemessen zu handhaben.

PHP-Skripte werden nicht ausgeführt

Stellen Sie sicher, dass Sie PHP installiert haben und dass die Konfigurationsdatei die in diesem Tutorial dargelegten Einstellungen enthält.

HTTP 500-Fehler

Diese Fehler erfordern weitere Untersuchungen. Ein Übeltäter könnte ein Fehler im PHP-Code sein. Was auch immer die Ursache ist, lesen Sie die Protokolldatei, um herauszufinden, was passiert ist.

Schlussfolgerung

Sie sollten einen richtig konfigurierten Webserver haben, der erfolgreich mit lighttpd läuft. Wenn Sie mehr als einen lighttpd benötigen Instanz ausgeführt wird, stellen Sie sicher, dass sich die in jeder Konfigurationsdatei angegebenen Ports voneinander unterscheiden, andernfalls gibt lighttpd einen Fehler aus.

Ein kleiner Tipp zur Lebensqualität

Sie können die Dateien verwalten, ohne Editoren als root auszuführen, indem Sie sich selbst den vollen Besitz des Verzeichnisses geben:

$ sudo chown -R your_username /var/www/html/mysite
$ sudo chgrp -R your_username /var/www/html/mysite

Linux
  1. So richten Sie Raspberry Pi als Backup-Server für Linux- und Windows-Desktops ein

  2. So installieren Sie den Lighttpd-Webserver unter CentOS 7

  3. 10 leichtgewichtige Open-Source-Webbrowser für Linux

  4. LAMP vs. LEMP – Tipps zur Auswahl von Apache oder Nginx für Ihren Webserver

  5. Vhosts-Grundlagen

So installieren Sie den Nginx-Webserver unter Ubuntu Linux:Ein Tutorial für Anfänger

Apache vs. Nginx:Welcher Webserver ist der beste für Sie?

So richten Sie den Lighttpd-Webserver unter Ubuntu 18.04 ein

So installieren Sie den Lighttpd-Webserver unter Ubuntu 18.04

So richten Sie einen NGINX RTMP-Server für das Streaming ein

So richten Sie Nginx als Loadbalancer für Apache oder Tomcat für HTTP/HTTPS ein