Webserver Installation · 7 min read · Oct 31, 2025

Installation von Lighttpd mit PHP 7 (PHP-FPM) und MySQL 5.7 auf Ubuntu 16.04 LTS

Lighttpd ist ein sicherer, schneller, standards-konformer Webserver, der für geschwindigkeitskritische Umgebungen entwickelt wurde. Dieses Tutorial zeigt, wie Sie Lighttpd auf einem Ubuntu 16.04-Server mit PHP 7-Unterstützung (über PHP-FPM) und MySQL 5.7 installieren können. PHP-FPM (FastCGI Process Manager) ist eine alternative PHP FastCGI-Implementierung mit einigen zusätzlichen Funktionen, die für Websites jeder Größe nützlich sind, insbesondere für beschäftigte Websites. Ich verwende PHP-FPM in diesem Tutorial anstelle von Lighttpd’s spawn-fcgi.

1 Vorbemerkung

In diesem Tutorial verwende ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.1.100. Diese Einstellungen können bei Ihnen abweichen, daher müssen Sie sie gegebenenfalls anpassen.

Ich führe alle Schritte in diesem Tutorial mit Root-Rechten aus, also stellen Sie sicher, dass Sie als Root angemeldet sind:

sudo -s

2 Installation von MySQL 5.7

Zuerst installieren wir MySQL wie folgt:

apt-get -y install mysql-server mysql-client

Sie werden aufgefordert, ein Passwort für den MySQL-Root-Benutzer anzugeben - dieses Passwort ist sowohl für den Benutzer root@localhost als auch für [email protected] gültig, sodass wir später kein MySQL-Root-Passwort manuell angeben müssen:

Neues Passwort für den MySQL “root”-Benutzer: <– yourrootsqlpassword
Wiederholen Sie das Passwort für den MySQL “root”-Benutzer: <– yourrootsqlpassword

Geben Sie das MySQL-Passwort ein.

Der Installer hat ein MySQL-Root-Passwort festgelegt, aber es gibt noch einige weitere Einstellungen, die für eine sichere MySQL-Installation geändert werden sollten. Dies kann mit dem Befehl mysql_secure_installation erfolgen.

mysql_secure_installation

Der Befehl ist interaktiv:

root@server1:~# mysql_secure_installation
Sichern der MySQL-Serverbereitstellung.
Geben Sie das Passwort für den Benutzer root ein: <-- Geben Sie das MySQL-Root-Passwort ein
VALIDATE PASSWORD PLUGIN kann verwendet werden, um Passwörter zu testen  
und die Sicherheit zu verbessern. Es überprüft die Stärke des Passworts  
und erlaubt den Benutzern, nur solche Passwörter festzulegen, die  
sicher genug sind. Möchten Sie das VALIDATE PASSWORD-Plugin einrichten?
Drücken Sie y|Y für Ja, eine andere Taste für Nein: <-- Drücken Sie y, wenn Sie diese Funktion möchten, oder drücken Sie Enter, wenn nicht.  
Verwenden des vorhandenen Passworts für root.  
Das Passwort für root ändern? ((Drücken Sie y|Y für Ja, eine andere Taste für Nein) : <-- Drücken Sie Enter
... überspringen.  
Standardmäßig hat eine MySQL-Installation einen anonymen Benutzer,  
die es jedem ermöglicht, sich ohne ein Benutzerkonto in MySQL einzuloggen.  
Dies ist nur für Tests gedacht und soll die Installation etwas reibungsloser gestalten.  
Sie sollten sie entfernen, bevor Sie in eine Produktionsumgebung wechseln.
Anonyme Benutzer entfernen? (Drücken Sie y|Y für Ja, eine andere Taste für Nein) : <-- y  
Erfolg.
Normalerweise sollte root nur von  
'localhost' aus eine Verbindung herstellen dürfen. Dies stellt sicher, dass niemand  
das Root-Passwort über das Netzwerk erraten kann.
Fernzugriff für root verbieten? (Drücken Sie y|Y für Ja, eine andere Taste für Nein) : <-- y  
Erfolg.
Standardmäßig wird MySQL mit einer Datenbank namens 'test' geliefert, auf die  
alle zugreifen können. Dies ist ebenfalls nur für Tests gedacht  
und sollte entfernt werden, bevor Sie in eine Produktionsumgebung wechseln.
Testdatenbank und Zugriff darauf entfernen? (Drücken Sie y|Y für Ja, eine andere Taste für Nein) : <-- y  
- Löschen der Testdatenbank...  
Erfolg.
- Entfernen der Berechtigungen für die Testdatenbank...  
Erfolg.
Das Neuladen der Berechtigungstabellen stellt sicher, dass alle Änderungen  
bis jetzt sofort wirksam werden.
Berechtigungstabellen jetzt neu laden? (Drücken Sie y|Y für Ja, eine andere Taste für Nein) : <-- y  
Erfolg.
Alles erledigt!

3 Installation von Lighttpd

Lighttpd ist als Ubuntu-Paket verfügbar. Daher können wir es direkt mit apt aus dem Ubuntu Xenial Xerus-Paket-Repository installieren:

apt-get -y install lighttpd

Richten Sie jetzt Ihren Browser auf http://192.168.1.100/, und Sie sollten die Lighttpd-Platzhalterseite sehen:

Die Standardseite von Ubuntu Lighttpd.

Das Standard-Dokumentenverzeichnis von Lighttpd ist /var/www/html auf Ubuntu, und die Konfigurationsdatei ist /etc/lighttpd/lighttpd.conf. Zusätzliche Konfigurationen werden in Dateien im Verzeichnis /etc/lighttpd/conf-available gespeichert - diese Konfigurationen können mit dem Befehl lighttpd-enable-mod aktiviert werden, der einen Symlink vom Verzeichnis /etc/lighttpd/conf-enabled zur entsprechenden Konfigurationsdatei im Verzeichnis /etc/lighttpd/conf-available erstellt. Sie können Konfigurationen mit dem Befehl lighttpd-disable-mod deaktivieren.

4 Installation von PHP 7.0

Wir können PHP in Lighttpd über PHP-FPM zum Laufen bringen, das wir wie folgt installieren:

apt-get -y install php7.0-fpm php7.0

PHP-FPM ist ein Daemon-Prozess (mit dem Init-Skript php5-fpm), der einen FastCGI-Server am Socket /var/run/php/php7.0-fpm.sock ausführt.

5 Konfiguration von Lighttpd und PHP 7.0

Um PHP in Lighttpd zu aktivieren, müssen wir /etc/php/7.0/fpm/php.ini ändern und die Zeile cgi.fix_pathinfo=1 auskommentieren:

nano /etc/php/7.0/fpm/php.ini
[...]
; cgi.fix_pathinfo bietet *echte* PATH_INFO/PATH_TRANSLATED-Unterstützung für CGI. PHP's  
; vorheriges Verhalten war, PATH_TRANSLATED auf SCRIPT_FILENAME zu setzen und nicht zu verstehen,  
; was PATH_INFO ist. Für weitere Informationen zu PATH_INFO siehe die CGI-Spezifikationen.  
; Wenn Sie dies auf 1 setzen, wird PHP CGI seine Pfade so anpassen, dass sie der Spezifikation entsprechen.  
; Eine Einstellung von null lässt PHP wie zuvor arbeiten. Standard ist 1. Sie sollten Ihre Skripte  
; so anpassen, dass sie SCRIPT_FILENAME anstelle von PATH_TRANSLATED verwenden.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=1
[...]

Die Lighttpd-Konfigurationsdatei für PHP /etc/lighttpd/conf-available/15-fastcgi-php.conf ist für die Verwendung mit spawn-fcgi geeignet, jedoch möchten wir PHP-FPM verwenden, daher erstellen wir eine Sicherung der Datei (benannt 15-fastcgi-php.conf.bak) und ändern 15-fastcgi-php.conf wie folgt:

cd /etc/lighttpd/conf-available/  
cp 15-fastcgi-php.conf 15-fastcgi-php.conf.bak  
nano 15-fastcgi-php.conf
# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi

## Starten Sie einen FastCGI-Server für PHP (benötigt das php7.0-cgi-Paket)
fastcgi.server += ( ".php" =>
        ((
                "socket" => "/var/run/php/php7.0-fpm.sock",
                "broken-scriptfilename" => "enable"
        ))
)

Um die FastCGI-Konfiguration zu aktivieren, führen Sie die folgenden Befehle aus:

lighttpd-enable-mod fastcgi  
lighttpd-enable-mod fastcgi-php

Dies erstellt die Symlinks /etc/lighttpd/conf-enabled/10-fastcgi.conf, die auf /etc/lighttpd/conf-available/10-fastcgi.conf zeigt, und /etc/lighttpd/conf-enabled/15-fastcgi-php.conf, die auf /etc/lighttpd/conf-available/15-fastcgi-php.conf zeigt:

ls -l /etc/lighttpd/conf-enabled
root@server1:/etc/lighttpd/conf-available# ls -l /etc/lighttpd/conf-enabled  
total 0  
lrwxrwxrwx 1 root root 33 Apr 27 11:26 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf  
lrwxrwxrwx 1 root root 37 Apr 27 11:26 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf  
lrwxrwxrwx 1 root root 42 Apr 21 11:10 90-javascript-alias.conf -> ../conf-available/90-javascript-alias.conf  
root@server1:/etc/lighttpd/conf-available#

Dann laden wir Lighttpd neu:

service lighttpd force-reload

Hinweis: Wenn Sie Locale-Fehler erhalten, können Sie den Fehler beheben, indem Sie

apt-get -y install language-pack-en-base  

dpkg-reconfigure locales

6 Testen von PHP 7.0 / Informationen zu Ihrer PHP-Installation

Das Dokumentenverzeichnis der Standardwebsite ist /var/www/html. Wir werden jetzt eine kleine PHP-Datei (info.php) in diesem Verzeichnis erstellen und sie in einem Browser aufrufen. Die Datei zeigt viele nützliche Details über unsere PHP-Installation an, wie die installierte PHP-Version.

nano /var/www/html/info.php

Jetzt rufen wir diese Datei in einem Browser auf (z.B. http://192.168.1.100/info.php):

PHP-Info auf Lighttpd.

Wie Sie sehen, funktioniert PHP 7.0, und es funktioniert über FPM/FastCGI, wie in der Server-API-Zeile angezeigt. Wenn Sie weiter nach unten scrollen, sehen Sie alle Module, die bereits in PHP5 aktiviert sind. MySQL ist dort nicht aufgeführt, was bedeutet, dass wir noch keine MySQL-Unterstützung in PHP haben.

7 MySQL-Unterstützung in PHP erhalten

Um MySQL-Unterstützung in PHP zu erhalten, können wir das Paket php7.0-mysql installieren. Es ist eine gute Idee, auch einige andere PHP-Module zu installieren, da Sie diese möglicherweise für Ihre Anwendungen benötigen. Sie können nach verfügbaren PHP-Modulen wie folgt suchen:

apt-cache search php7.0

Wählen Sie die benötigten aus und installieren Sie sie wie folgt:

apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache  php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext

APCu ist eine Erweiterung für das PHP Opcache-Modul, das mit PHP 7 geliefert wird. Es fügt einige Kompatibilitätsfunktionen für Software hinzu, die den APC-Cache unterstützt (z.B. Wordpress-Cache-Plugins).

APCu kann wie folgt installiert werden:

apt-get -y install php-apcu

Jetzt laden wir PHP-FPM neu:

service php7.0-fpm reload

Laden Sie jetzt http://192.168.1.100/info.php in Ihrem Browser neu und scrollen Sie wieder zum Abschnitt Module. Sie sollten jetzt viele neue Module dort finden, einschließlich des mysqli- und mysqlnd-Moduls:

8 phpMyAdmin

phpMyAdmin ist eine Weboberfläche, über die Sie Ihre MySQL-Datenbanken verwalten können. Es ist eine gute Idee, es zu installieren:

apt-get -y install phpmyadmin

Sie werden die folgenden Fragen sehen:

Webserver, der automatisch neu konfiguriert werden soll: <-- lighttpd  
Datenbank für phpmyadmin mit dbconfig-common konfigurieren? <-- Ja  
MySQL-Anwendungspasswort für phpmyadmin: <-- Drücken Sie Enter

Wenn Sie den folgenden Fehler erhalten:

Führen Sie /etc/init.d/lighttpd force-reload aus, um Änderungen zu aktivieren  
dpkg: Fehler bei der Verarbeitung des Pakets phpmyadmin (--configure):  
Unterprozess installiertes Post-Installations-Skript gab den Fehlerstatus 2 zurück  
E: Unterprozess /usr/bin/dpkg gab einen Fehlercode (1) zurück

Führen Sie dann diese Befehle aus:

/etc/init.d/lighttpd force-reload  
apt-get -y install phpmyadmin

Anschließend können Sie phpMyAdmin unter http://192.168.1.100/phpmyadmin/ aufrufen:

9 PHP-FPM dazu bringen, eine TCP-Verbindung zu verwenden (optional)

Standardmäßig hört PHP-FPM am Socket /var/run/php/php7.0-fpm.sock. Es ist auch möglich, PHP-FPM eine TCP-Verbindung verwenden zu lassen. Öffnen Sie dazu /etc/php/7.0/fpm/pool.d/www.conf…

nano /etc/php/7.0/fpm/pool.d/www.conf

… und lassen Sie die Listenzeile wie folgt aussehen:

[...]
;listen = /var/run/php/php7.0-fpm.sock
listen = 127.0.0.1:9000
[...]

Dies bewirkt, dass PHP-FPM auf Port 9000 an der IP 127.0.0.1 (localhost) hört. Stellen Sie sicher, dass Sie einen Port verwenden, der auf Ihrem System nicht verwendet wird.

Laden Sie dann PHP-FPM neu:

service php7.0-fpm reload

Öffnen Sie als Nächstes die PHP-Konfigurationsdatei von Lighttpd /etc/lighttpd/conf-available/15-fastcgi-php.conf und ersetzen Sie die Socket-Zeile durch Host- und Port-Zeilen:

nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
# /usr/share/doc/lighttpd-doc/fastcgi.txt.gz
# http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi

## Starten Sie einen FastCGI-Server für PHP (benötigt das php7.0-cgi-Paket)
fastcgi.server += ( ".php" =>
        ((
                "host" => "127.0.0.1",
                "port" => "9000",
                "broken-scriptfilename" => "enable"
        ))
)

Laden Sie schließlich Lighttpd neu:

service lighttpd force-reload

10 Links

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.