Wie man Lighttpd mit PHP, MariaDB und Let’s Encrypt SSL auf Debian 10 installiert
Lighttpd ist ein kostenloser, quelloffener und schneller Webserver, der speziell für geschwindigkeitskritische Umgebungen entwickelt wurde. Es erfordert einen geringen Speicherbedarf im Vergleich zu anderen Webservern wie Apache und Nginx und ist besonders schnell für laufende AJAX-Anwendungen. Lighttpd ermöglicht es uns auch, Webanwendungen, die in einer anderen Programmiersprache geschrieben wurden, über die FastCGI-, SCGI- und CGI-Schnittstellen zu hosten. Lighttpd ist die beste Wahl für Sie, wenn Ihr Server Lastprobleme hat.
In diesem Tutorial erfahren wir, wie man Lighttpd unter Debian 10 mit PHP-FPM- und MariaDB-Unterstützung installiert und den Webserver mit einem Let’s Encrypt SSL-Zertifikat sichert.
Anforderungen
- Ein Server mit Debian 10.
- Ein Root-Passwort wird auf deinem Server eingerichtet.
Ich werde in diesem Tutorial den Domainnamen example.com verwenden. Ersetzen Sie example.com in allen Dateinamen und Konfigurationseinstellungen durch Ihren eigenen Domänennamen unten.
Erste Schritte
Vor dem Start müssen Sie Ihr System auf die neueste Version aktualisieren. Sie können dies tun, indem Sie den folgenden Befehl ausführen:
apt-get update -y apt-get upgrade -y
Sobald Ihr Server aktualisiert ist, starten Sie Ihren Server neu, um die Änderungen zu übernehmen.
Lighttpd installieren
Standardmäßig ist Lighttpd im Standard-Repository von Debian 10 verfügbar. Sie können es installieren, indem Sie einfach den folgenden Befehl ausführen:
apt-get install lighttpd -y
Wenn die Installation abgeschlossen ist, starten Sie den Lighttpd-Dienst und aktivieren Sie ihn nach dem Neustart des Systems mit dem folgenden Befehl:
systemctl start lighttpd systemctl enable lighttpd
Sie können den Status von Lighttpd auch mit dem folgenden Befehl überprüfen:
systemctl status lighttpd
Du solltest die folgende Ausgabe erhalten:
? lighttpd.service - Lighttpd Daemon Loaded: loaded (/lib/systemd/system/lighttpd.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2019-09-06 02:09:35 EDT; 29s ago Main PID: 4445 (lighttpd) Tasks: 1 (limit: 1138) Memory: 1.4M CGroup: /system.slice/lighttpd.service ??4445 /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf Sep 06 02:09:35 debian systemd[1]: Starting Lighttpd Daemon... Sep 06 02:09:35 debian systemd[1]: Started Lighttpd Daemon. Sep 06 02:09:36 debian systemd[1]: /lib/systemd/system/lighttpd.service:6: PIDFile= references path below legacy directory /var/run/, updating lines 1-12/12 (END)
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
MariaDB Server installieren
Sie können den MariaDB-Server installieren, indem Sie den folgenden Befehl ausführen:
apt-get install mariadb-server mariadb-client -y
Nach der Installation müssen Sie die MariaDB-Installation sichern. Sie können es sichern, indem Sie das folgende Skript ausführen:
mysql_secure_installation
Answer all the questions as shown below: Change the root password? [Y/n] n Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
PHP und PHP-FPM installieren
Als nächstes müssen Sie PHP, PHP-FPM und FastCGI auf Ihrem System installieren. Standardmäßig wird Debian 10 mit PHP Version 7.3 ausgeliefert. Sie können es installieren, indem Sie einfach den folgenden Befehl ausführen:
apt-get install php php-cgi php-fpm php-mysql -y
Sobald alle Pakete installiert sind, müssen Sie die Datei php.ini bearbeiten und cgi.fix_pathinfo auf 1 setzen, was Sie mit dem folgenden Befehl tun können:
nano /etc/php/7.3/fpm/php.ini
Ändern Sie die folgende Zeile:
cgi.fix_pathinfo=1
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Standardmäßig zeigt PHP auf den UNIX-Socket /var/run/php/php/php7.3-fpm.sock. Sie müssen also den PHP-FPM-Pool so konfigurieren, dass PHP Listens auf TCP-Socket setzt.
Sie können dies tun, indem Sie die Datei /etc/php/7.3/fpm/pool.d/wwww.conf bearbeiten:
nano /etc/php/7.3/fpm/pool.d/www.conf
Suchen Sie die folgende Zeile:
listen = /run/php/php7.3-fpm.sock
Und ersetzen Sie es durch die folgende Zeile:
listen = 127.0.0.1:9000
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den PHP-FPM-Dienst neu, um die Konfigurationsänderungen zu übernehmen:
systemctl restart php7.3-fpm
Als nächstes müssen Sie die Datei 15-fastcgi-php.conf ändern:
nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
Suchen Sie die folgenden Zeilen:
"bin-path" => "/usr/bin/php-cgi", "socket" => "/var/run/lighttpd/php.socket",
Und ersetzen Sie sie durch Folgendes:
"host" => "127.0.0.1", "port" => "9000",
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Aktivieren Sie dann sowohl FastCGI- als auch FastCHI-PHP-Modul mit den folgenden Befehlen:
lighty-enable-mod fastcgi lighty-enable-mod fastcgi-php
Starten Sie schließlich den Lighttpd-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart lighttpd
Lighttpd Virtual Host erstellen
Als nächstes müssen Sie eine neue virtuelle Hostdatei erstellen, um PHP mit Lighttpd zu testen. Du kannst es mit dem folgenden Befehl erstellen:
nano /etc/lighttpd/conf-available/example.com.conf
Füge die folgenden Zeilen hinzu:
$HTTP["host"] == "www.example.com" { server.document-root = "/var/www/html/" server.errorlog = "/var/log/lighttpd/example.com-error.log" }
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Aktivieren Sie dann den virtuellen Host mit dem folgenden Befehl:
ln -s /etc/lighttpd/conf-available/example.com.conf /etc/lighttpd/conf-enabled/
Als nächstes erstellen Sie eine Beispieldatei index.php im Lighttpd-Dokument-Rootverzeichnis mit dem folgenden Befehl:
nano /var/www/html/index.php
Füge die folgende Zeile hinzu:
<?php phpinfo(); ?>
Speichern und schließen Sie die Datei. Ändern Sie dann den Besitzer des Lighttpd-Dokument-Root-Verzeichnisses mit dem folgenden Befehl auf www-data:
chown -R www-data:www-data /var/www/html/
Starten Sie schließlich den Lighttpd-Dienst neu, um alle Konfigurationsänderungen zu übernehmen:
systemctl restart lighttpd
Sichern Sie Lighttpd mit Let’s Encrypt Free SSL.
Zuerst müssen Sie das Certbot-Tool installieren, um Ihren Webserver mit Let’s Encrypt zu schützen. Standardmäßig ist die neueste Version von Certbot nicht im Standard-Repository von Debian 10 verfügbar.
Sie können das Certbot-Repository mit dem folgenden Befehl hinzufügen:
apt-get install software-properties-common add-apt-repository ppa:certbot/certbot
Aktualisieren Sie anschließend das Repository und installieren Sie Certbot mit dem folgenden Befehl:
apt-get update -y apt-get install certbot -y
Erstellen Sie anschließend ein Let’s Encrypt-Zertifikat mit dem folgenden Befehl:
certbot certonly --webroot -w /var/www/html/ -d www.example.com
Sie werden aufgefordert, Ihre E-Mail-Adresse anzugeben und die Lizenzbedingungen wie unten gezeigt zu akzeptieren:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator webroot, Installer None Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): admin@example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y
Sobald die Zertifikate erfolgreich heruntergeladen wurden, sollten Sie die folgende Ausgabe sehen:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2019-12-06. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Als nächstes müssen Sie sowohl das Zertifikat als auch den privaten Schlüssel in einer Datei kombinieren. Du kannst es mit dem folgenden Befehl tun:
cat /etc/letsencrypt/live/example.com/cert.pem /etc/letsencrypt/live/example.com/privkey.pem > /etc/letsencrypt/live/example.com/web.pem
Als nächstes müssen Sie die virtuelle Lighttpd-Hostdatei bearbeiten und den Pfad des Let’s Encrypt SSL-Zertifikats definieren.
Du kannst es mit dem folgenden Befehl tun:
nano /etc/lighttpd/conf-enabled/example.com.conf
Ändern Sie die Datei wie unten gezeigt:
$HTTP["host"] == "www.example.com" { server.document-root = "/var/www/html/" } $SERVER["socket"] == ":443" { ssl.engine = "enable" ssl.pemfile = "/etc/letsencrypt/live/example.com/web.pem" # Combined Certificate ssl.ca-file = "/etc/letsencrypt/live/example.com/chain.pem" # Root CA server.name = "www.example.com" # Domain Name OR Virtual Host Name server.document-root = "/var/www/html/" # Document Root server.errorlog = "/var/log/lighttpd/example.com_error.log" accesslog.filename = "/var/log/lighttpd/example.com_access.log" } $HTTP["scheme"] == "http" { $HTTP["host"] == "www.example.com" { # HTTP URL url.redirect = ("/.*" => "https://www.example.com$0") # Redirection HTTPS URL } }
Speichern und schließen Sie die Datei. Starten Sie dann den Lighttpd-Dienst neu, um die Konfigurationsänderungen zu übernehmen:
systemctl restart lighttpd
Zugriff auf die Lighttpd Weboberfläche
Lighttpd wird mit PHP- und PHP-FPM-Unterstützung installiert und konfiguriert. Jetzt ist es an der Zeit, es zu testen.
Öffnen Sie Ihren Webbrowser und geben Sie die URL https://www.example.com ein. Sie werden auf die folgende Seite weitergeleitet:
Die obige Seite zeigt, dass PHP gut mit FastCGI funktioniert.
Fazit
Herzlichen Glückwunsch! Sie haben den Lighttpd Webserver mit PHP-FPM- und FastCGI-Unterstützung unter Debian 10 erfolgreich installiert und konfiguriert. Sie können nun ganz einfach Ihren eigenen Webserver hosten. Für weitere Informationen besuchen Sie die offizielle Dokumentationsseite von Lighttpd unter Lighttpd Doc.