PHP ist eine weit verbreitete serverseitige Skriptsprache, die zur Entwicklung dynamischer Webanwendungen eingesetzt wird. PHP-FPM (FastCGI Process Manager) erhöht die Effizienz und optimiert die Verarbeitung von PHP-Anfragen in Kombination mit Webservern.
Diese Anleitung zeigt Schritt für Schritt, wie Sie PHP und PHP-FPM auf Ubuntu 22.04 installieren, um eine funktionsfähige PHP-Umgebung für Ihre Anwendungen bereitzustellen.
Voraussetzungen
Vor dem Start stellen Sie sicher, dass Sie Folgendes haben:
- Einen Ubuntu 22.04 Server.
- SSH-Zugang als Nicht-Root-Benutzer mit sudo-Rechten.
- Einen vollständig aktualisierten Server.
Passende Infrastruktur bei centron
Ubuntu-Server ohne eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →
PHP installieren
Ubuntu 22.04 bringt PHP bereits in den Standard-APT-Repositories mit. Führen Sie folgende Schritte aus, um das System zu aktualisieren und PHP zu installieren.
Paketindex aktualisieren
$ sudo apt updatePHP installieren
$ sudo apt install php -yInstallierte PHP-Version prüfen
$ php -vBeispielausgabe:
PHP 8.1.2-1ubuntu2.21 (cli) (built: Mar 24 2025 19:04:23) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2-1ubuntu2.21, Copyright (c), by Zend Technologies
PHP-Erweiterungen installieren
Erweiterungen erweitern die Funktionalität von PHP, etwa für Datenbankanbindung, Verschlüsselung oder Bildbearbeitung. Installieren Sie gängige Erweiterungen mit folgendem Befehl:
$ sudo apt install -y php-mysql php-mbstring php-bcmath php-zip php-gd php-curl php-xmlDieser Befehl installiert:
- php-mysql – Verbindet PHP mit MySQL-Datenbanken.
- php-mbstring – Unterstützung für UTF-8 und Multibyte-Strings.
- php-bcmath – Hohe Genauigkeit für mathematische Operationen.
- php-zip – Unterstützung für ZIP-Archive.
- php-gd – Bildbearbeitung und -verarbeitung.
- php-curl – Datentransfer über URLs.
- php-xml – XML-Parsing und -Verarbeitung.
Verfügbare PHP-Erweiterungen anzeigen
$ sudo apt-cache search php | grep "^php8.1"Installierte PHP-Erweiterungen prüfen
$ php -mBeispielausgabe:
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
exif
FFI
.....
[Zend Modules]
Zend OPcache
PHP-FPM installieren und konfigurieren
PHP-FPM ist in den Standard-Repositories von Ubuntu 22.04 enthalten und entspricht der installierten PHP-Version. Gehen Sie wie folgt vor:
PHP-FPM installieren
$ sudo apt install php-fpm -yPHP-FPM-Version prüfen
$ php-fpm8.1 -vAusgabe:
PHP 8.1.2-1ubuntu2.21 (fpm-fcgi) (built: Mar 24 2025 19:04:23)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2-1ubuntu2.21, Copyright (c), by Zend Technologies
PHP-FPM-Verzeichnisse prüfen
$ ls /etc/php/8.1/Beispielausgabe:
apache2 cli fpm mods-available
PHP-FPM Pool-Konfiguration anpassen
Wechseln Sie ins Pool-Verzeichnis:
$ cd /etc/php/8.1/fpm/pool.d/Öffnen Sie die Standardkonfigurationsdatei:
$ sudo nano www.confPHP-FPM Pool-Einstellungen prüfen
Pool-Name:
[www]Benutzer- und Gruppeneinstellungen:
user = www-data
group = www-dataSocket-Pfad:
listen = /run/php/php8.1-fpm.sockProzessverwaltungseinstellungen:
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3Erklärung:
- pm: Modus des Prozessmanagers (static, dynamic, ondemand).
- pm.max_children: Maximale Anzahl von Kindprozessen.
- pm.start_servers: Anzahl der Prozesse beim Start (nur für dynamic).
- pm.min_spare_servers: Mindestanzahl an Leerlaufprozessen.
- pm.max_spare_servers: Maximal erlaubte Leerlaufprozesse.
- pm.process_idle_timeout: Zeit, bevor Leerlaufprozesse beendet werden.
- access.log: Protokolliert Anfragen an den PHP-FPM Pool.
- slowlog: Pfad zur Protokollierung langsamer Anfragen.
- request_slowlog_timeout: Zeitlimit zur Erkennung langsamer Anfragen.
PHP-FPM neu starten
Starten Sie den Dienst neu, um Ihre Änderungen zu übernehmen:
$ sudo systemctl restart php8.1-fpmPHP und PHP-FPM testen
PHP verarbeitet dynamische Inhalte, während PHP-FPM die Verbindung zwischen PHP und dem Webserver herstellt und Ressourcen optimal verwaltet. Folgen Sie diesen Schritten, um PHP und PHP-FPM mit Nginx zu prüfen.
Beispiel-PHP-Datei erstellen und testen
Wechseln Sie in Ihr Home-Verzeichnis:
$ cdErstellen Sie eine Datei mit dem Namen sample.php:
$ nano sample.phpFügen Sie folgenden Inhalt ein:
<!--?php echo "Greetings from centron! PHP is working correctly on this server"; ?-->Führen Sie das Skript über die PHP-CLI aus:
$ php sample.phpErwartete Ausgabe:
Greetings from centron! PHP is working correctly on this server
Nginx installieren und konfigurieren
Installieren Sie Nginx, um PHP-Dateien über PHP-FPM auszuliefern:
$ sudo apt install nginx -ySichern Sie die Standardkonfiguration:
$ sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.BAKErstellen Sie eine neue Standardkonfiguration:
$ sudo nano /etc/nginx/sites-available/defaultFügen Sie folgende Einstellungen hinzu:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html/;
index index.html index.php index.nginx-debian.html;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
}Überprüfen Sie die Nginx-Konfiguration:
$ sudo nginx -tErwartete Ausgabe:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
PHP mit Nginx testen
Erstellen Sie im Verzeichnis /var/www/html eine Datei test.php:
$ sudo nano /var/www/html/test.phpFügen Sie folgenden Code ein:
<!--?php phpinfo(); ?-->Beenden Sie Apache, um Port 80 freizugeben:
$ sudo systemctl stop apache2Erlauben Sie HTTP-Traffic über die Firewall (UFW):
$ sudo ufw allow 80Starten Sie Nginx neu:
$ sudo systemctl restart nginxÖffnen Sie Ihren Browser und rufen Sie auf:
http://SERVER-IP/test.php
Mehrere PHP-Versionen installieren
Einige Projekte benötigen unterschiedliche PHP-Versionen. Standardmäßig bietet Ubuntu 22.04 nur eine begrenzte Auswahl. Um ältere oder alternative Versionen wie PHP 7.4 zu installieren, verwenden Sie das Repository ppa:ondrej/php.
PHP-Repository hinzufügen
$ sudo add-apt-repository -y ppa:ondrej/phpPHP 7.4 und PHP-FPM installieren
$ sudo apt install -y php7.4 php7.4-fpmPHP-Version prüfen
$ php7.4 -vBeispielausgabe:
PHP 7.4.33 (cli) (built: Jun 6 2024 16:49:34) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies
PHP-FPM Status prüfen
$ sudo systemctl status php7.4-fpmBeispielausgabe:
● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2025-04-06 16:24:27 UTC; 33s ago
Docs: man:php-fpm7.4(8)
Main PID: 31049 (php-fpm7.4)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Neue Site für PHP 7.4 erstellen
Neues Verzeichnis anlegen:
$ sudo mkdir -p /var/www/php74-siteDie Testdatei als index.php kopieren:
$ sudo cp /var/www/html/test.php /var/www/php74-site/index.phpNeue Nginx-Serverkonfiguration erstellen:
$ sudo nano /etc/nginx/sites-available/php74-site.confFolgende Konfiguration einfügen:
server {
listen 9000;
listen [::]:9000;
root /var/www/php74-site;
index index.php index.html;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
}Neue Site aktivieren:
$ sudo ln -s /etc/nginx/sites-available/php74-site.conf /etc/nginx/sites-enabled/Nginx-Konfiguration testen:
$ sudo nginx -tErwartete Ausgabe:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Port 9000 in der Firewall freigeben:
$ sudo ufw allow 9000/tcpFirewall-Regeln neu laden:
$ sudo ufw reloadNginx neu starten:
$ sudo systemctl restart nginxGreifen Sie im Browser auf Ihre PHP 7.4-Site zu:
http://SERVER-IP:9000
Sie sollten die PHP-7.4-Details sehen. Öffnen Sie zusätzlich Ihre Standardseite, um sicherzustellen, dass PHP 8.1 getrennt verarbeitet wird:
http://SERVER-IP/test.php
Fazit
In dieser Anleitung haben Sie PHP, PHP-FPM und mehrere PHP-Versionen auf Ubuntu 22.04 installiert. Mit PHP-FPM in Kombination mit Nginx lassen sich dynamische Anfragen effizient verarbeiten und mehrere Projekte mit unterschiedlichen PHP-Anforderungen parallel betreiben. Weitere Informationen finden Sie in der offiziellen PHP-Dokumentation.
Testen Sie Ihr Setup auf ccloud³
Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.