Webserver · 4 min read · Jan 23, 2026
PHP 5.3, Nginx und PHP-fpm auf Ubuntu/Debian installieren
PHP 5.3, Nginx und PHP-fpm auf Ubuntu/Debian installieren
Version 1.1
Folge mir auf Twitter
Da Apache meistens ein speicherhungriger Prozess ist, begannen die Leute, nach anderen Möglichkeiten zu suchen, ihre Website zu hosten. Apache ist eindeutig nicht der einzige verfügbare Webserver. Einige gute Beispiele sind lighttpd und nginx. In diesem Tutorial zeige ich dir, wie du es auf deinem Ubuntu-Server installieren kannst. Dieses Tutorial gilt jedoch auch für Debian. Es gibt nur einen sehr kleinen Unterschied.
Bereit? Lass uns anfangen, oder?
Schritt 0 - Vorbemerkungen
Um dieses Tutorial abzuschließen, gehe ich davon aus, dass du ein Basissystem von Debian oder Ubuntu installiert hast. Wie dies geschehen kann, kann in verschiedenen Tutorials nachgelesen werden. Dieses Tutorial konzentriert sich nur darauf, nginx+php ohne viel Aufwand zum Laufen zu bringen.
Schritt 1 - Nginx
Nginx zu installieren ist der erste Schritt, den wir tun müssen. Dies kann einfach durch Herunterladen aus dem Repository erfolgen.
sudo apt-get install nginxDer Standard-vhost muss geändert werden, um ordnungsgemäß zu funktionieren.
sudo vim /etc/nginx/sites-available/defaultEin schöner Ausgangspunkt für deine Konfiguration ist:
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
## Standardstandort
location / {
root /var/www;
index index.php;
}
## Bilder und statische Inhalte werden anders behandelt
location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
access_log off;
expires 30d;
root /var/www;
}
## Alle .php-Dateien im Verzeichnis /var/www parsen
location ~ .php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
## Anzeige von .htaccess & .htpassword deaktivieren
location ~ \/\.ht {
deny all;
}
}
upstream backend {
server 127.0.0.1:9000;
}
Ok, das haben wir erledigt. Jetzt installieren wir die benötigten Dateien für PHP.
Schritt 2 - PHP installieren
Viele Websites sind auf PHP angewiesen, um ihnen dynamische Inhalte bereitzustellen, sei es ein Wiki, Forensoftware, ein Weblog oder etwas ganz anderes.
Wenn du Ubuntu verwendest, müssen wir zuerst zwei Abhängigkeiten für die dotdeb-Pakete lösen. Wenn du die amd64-Version verwendest, solltest du i386 durch amd64 ersetzen.
Für Debian musst du dies nicht tun!
cd /tmpwget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.debwget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.debsudo dpkg -i *.debWiederum ist dies nur erforderlich, wenn du Ubuntu verwendest.
Der Rest des Tutorials gilt sowohl für Ubuntu als auch für Debian.
Wir müssen das dotdeb-Repository zu den APT-Quellen hinzufügen, damit wir deren verpacktes PHP 5.3 und php-fpm verwenden können:
sudo echo "deb http://php53.dotdeb.org stable all" >> /etc/apt/sources.listAPT aktualisieren:
sudo apt-get updateDer resultierende Text sollte dotdeb enthalten.
Jetzt installieren wir PHP (Teil 1):
sudo apt-get install php5-cli php5-common php5-suhosinWir müssen die CLI vor dem Rest installieren, da dies später Probleme verursachen kann.
sudo apt-get install php5-fpm php5-cgiWenn du planst, eine Datenbank zu verwenden oder spezifische Module (mcrypt, ldap, snmp usw.) benötigst, kannst du diese ebenfalls installieren.
Ok, jetzt haben wir nginx und PHP.
Eine kleine Anmerkung: Wenn du “php short tags” ( ) verwendest, solltest du sie in deinen php.ini-Dateien (für sowohl fpm als auch cli) aktivieren. Wenn du dies nicht änderst, siehst du deinen Code im Klartext!
Schritt 3 - Finalisierung
Starte nginx neu, um die Konfigurationsänderungen, die wir zuvor vorgenommen haben, zu übernehmen.
sudo /etc/init.d/nginx restartDer Neustart sollte ohne Probleme verlaufen sein.
Nach der Installation von php5-fpm sollte es gestartet worden sein. Wenn du deine php.ini-Dateien geändert hast, musst du php5-fpm neu starten.
sudo /etc/init.d/php5-fpm restartAlles klar. Sie sollten jetzt beide laufen.
Schritt 4 - Testen
Um zu testen, ob die Ausführung von PHP funktioniert, erstelle eine index.php-Datei in /var/www mit folgendem Inhalt:
Besuche deinen Webserver und du solltest die generierte phpinfo sehen können. Wenn nicht, ist etwas schiefgegangen.
Schritt 5 - Fehlersuche & abschließende Hinweise
Wenn du die phpinfo nicht gesehen hast, könnte etwas nicht stimmen. Um herauszufinden, was schiefgegangen ist, kannst du das nginx-Fehlerprotokoll überprüfen:
sudo tail /var/log/nginx/error.logDenke daran, wenn du deine php.ini geändert hast, musst du php5-fpm neu starten. Einen Neustart von nginx ist nicht notwendig.
In meiner Beispielkonfiguration habe ich die FastCGI-Fehlerinterzeption aktiviert. Wenn ein schwerwiegender Fehler auftritt (zum Beispiel ein “cannot redeclare class xyz”), kann nginx diese Seite abfangen und eine “schöne” Fehlerseite anzeigen, dass etwas schiefgegangen ist. Auf diese Weise werden weniger Informationen preisgegeben, falls etwas ernsthaft schiefgeht.
Wenn dir das nicht gefällt, kannst du es ausschalten.
Wenn php5-fpm nicht läuft, können deine PHP-Dateien nicht geparst werden und nginx zeigt dem Benutzer eine Fehlerseite an.
Nun, ich denke, wir sind fertig und du bist jetzt in der Lage, PHP mit deinem neuen nginx-basierten Webserver bereitzustellen. Nginx ist ziemlich nett und du kannst viel konfigurieren. Wenn du Umschreibungen benötigst, sei dir bewusst, dass nginx nicht mit .htaccess-Dateien funktioniert. Du musst deine vhost-Einstellungen ändern, damit die Umschreibungen funktionieren.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.