PHP und PHP-FPM auf Ubuntu 22.04 installieren und konfigurieren
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.
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 update
PHP installieren
$ sudo apt install php -y
Installierte PHP-Version prüfen
$ php -v
Beispielausgabe:
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-xml
Dieser 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 -m
Beispielausgabe:
[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 -y
PHP-FPM-Version prüfen
$ php-fpm8.1 -v
Ausgabe:
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.conf
PHP-FPM Pool-Einstellungen prüfen
Pool-Name:
[www]
Benutzer- und Gruppeneinstellungen:
user = www-data
group = www-data
Socket-Pfad:
listen = /run/php/php8.1-fpm.sock
Prozessverwaltungseinstellungen:
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
Erklä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-fpm
PHP 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:
$ cd
Erstellen Sie eine Datei mit dem Namen sample.php:
$ nano sample.php
Fügen Sie folgenden Inhalt ein:
Führen Sie das Skript über die PHP-CLI aus:
$ php sample.php
Erwartete 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 -y
Sichern Sie die Standardkonfiguration:
$ sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.BAK
Erstellen Sie eine neue Standardkonfiguration:
$ sudo nano /etc/nginx/sites-available/default
Fü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 -t
Erwartete 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.php
Fügen Sie folgenden Code ein:
Beenden Sie Apache, um Port 80 freizugeben:
$ sudo systemctl stop apache2
Erlauben Sie HTTP-Traffic über die Firewall (UFW):
$ sudo ufw allow 80
Starten 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/php
PHP 7.4 und PHP-FPM installieren
$ sudo apt install -y php7.4 php7.4-fpm
PHP-Version prüfen
$ php7.4 -v
Beispielausgabe:
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-fpm
Beispielausgabe:
● 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-site
Die Testdatei als index.php kopieren:
$ sudo cp /var/www/html/test.php /var/www/php74-site/index.php
Neue Nginx-Serverkonfiguration erstellen:
$ sudo nano /etc/nginx/sites-available/php74-site.conf
Folgende 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 -t
Erwartete 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/tcp
Firewall-Regeln neu laden:
$ sudo ufw reload
Nginx neu starten:
$ sudo systemctl restart nginx
Greifen 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.


