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:

PHP auf Lighttpd

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.

Das könnte dich auch interessieren …