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 -s2 Installation von MySQL 5.7
Zuerst installieren wir MySQL wie folgt:
apt-get -y install mysql-server mysql-clientSie 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

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_installationDer Befehl ist interaktiv:
root@server1:~# mysql_secure_installationSichern der MySQL-Serverbereitstellung.Geben Sie das Passwort für den Benutzer root ein: <-- Geben Sie das MySQL-Root-Passwort einVALIDATE 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 lighttpdRichten Sie jetzt Ihren Browser auf http://192.168.1.100/, und Sie sollten die Lighttpd-Platzhalterseite sehen:

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.0PHP-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-phpDies 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-enabledroot@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-reloadHinweis: Wenn Sie Locale-Fehler erhalten, können Sie den Fehler beheben, indem Sie
apt-get -y install language-pack-en-base
dpkg-reconfigure locales6 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.phpJetzt rufen wir diese Datei in einem Browser auf (z.B. http://192.168.1.100/info.php):

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.0Wä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-gettextAPCu 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-apcuJetzt laden wir PHP-FPM neu:
service php7.0-fpm reloadLaden 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 phpmyadminSie 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 EnterWenn 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ückFühren Sie dann diese Befehle aus:
/etc/init.d/lighttpd force-reload
apt-get -y install phpmyadminAnschließ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-reload10 Links
- Lighttpd: http://www.lighttpd.net/
- PHP: http://www.php.net/
- PHP-FPM: http://php-fpm.org/
- MySQL: http://www.mysql.com/
- Ubuntu: http://www.ubuntu.com/
- phpMyAdmin: http://www.phpmyadmin.net/
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.