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

PHP installieren

Installierte PHP-Version prüfen

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

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

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

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:

PHP-FPM Pool-Einstellungen prüfen

Pool-Name:

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:

Erstellen Sie eine Datei mit dem Namen sample.php:

Fügen Sie folgenden Inhalt ein:

Führen Sie das Skript über die PHP-CLI aus:

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:

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):

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

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:

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:

Firewall-Regeln neu laden:

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.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: