PHP mit PHP-FPM auf Ubuntu 20.04 installieren und konfigurieren

PHP ist eine weit verbreitete serverseitige Skriptsprache, die zur Entwicklung dynamischer Webanwendungen eingesetzt wird. Mit PHP-FPM lässt sich die Performance steigern, da PHP-Prozesse effizienter verwaltet werden.

Diese Anleitung zeigt, wie man PHP und PHP-FPM auf Ubuntu 20.04 installiert und eine funktionierende PHP-Umgebung einrichtet.

Voraussetzungen

Bevor Sie beginnen, stellen Sie Folgendes sicher:

  • Sie haben Zugriff auf einen Ubuntu 20.04 Server.
  • Ein neuer A-Record für Ihre Domain verweist auf die IP-Adresse des Servers.
  • Sie können sich per SSH als Nicht-Root-Benutzer mit Sudo-Rechten anmelden.
  • Der Server ist auf dem neuesten Stand.

PHP installieren

PHP ist in den Standard-APT-Repositories von Ubuntu 20.04 verfügbar. Aktualisieren Sie die Serverpakete und installieren Sie die neueste PHP-Version.

Aktualisieren Sie den Paketindex:

PHP installieren:

Die installierte PHP-Version überprüfen:

Beispielausgabe:

PHP 7.4.3-4ubuntu2.29 (cli) (built: Mar 25 2025 18:57:03) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3-4ubuntu2.29, Copyright (c), by Zend Technologies

PHP-Erweiterungen installieren

Erweiterungen erweitern die Funktionen von PHP, z. B. für Datenbankanbindungen, Verschlüsselung oder Bildbearbeitung. Viele Anwendungen und Frameworks benötigen sie.

Gängige Erweiterungen installieren:

$ sudo apt install -y php-mysql php-mbstring php-bcmath php-zip php-gd php-curl php-xml

Mit diesem Befehl werden folgende Erweiterungen installiert:

  • php-mysql: Stellt die Verbindung zu MySQL-Datenbanken her.
  • php-mbstring: Unterstützt UTF-8-Textverarbeitung.
  • php-bcmath: Ermöglicht präzise mathematische Berechnungen.
  • php-zip: Aktiviert den Umgang mit ZIP-Archiven.
  • php-gd: Fügt Bildbearbeitungsfunktionen hinzu.
  • php-curl: Unterstützt Datentransfer über URLs.
  • php-xml: Bietet Funktionen zur XML-Verarbeitung.

Alle verfügbaren Erweiterungen auflisten:

$ sudo apt-cache search php | grep "^php7.4"

Installierte Erweiterungen anzeigen:

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 Ubuntu-Repositories enthalten und passt zur installierten PHP-Version. Installieren Sie es, um PHP-Anfragen effizient zu verarbeiten, und richten Sie es so ein, dass es beim Booten automatisch startet.

PHP-FPM installieren:

$ sudo apt install php-fpm -y

PHP-FPM-Version prüfen (für PHP 7.4):

Beispielausgabe:

PHP 7.4.3-4ubuntu2.29 (fpm-fcgi) (built: Mar 25 2025 18:57:03)
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3-4ubuntu2.29, Copyright (c), by Zend Technologies

Den Inhalt des PHP-Konfigurationsverzeichnisses auflisten:

Beispielausgabe:

apache2  cli  fpm  mods-available

Das Vorhandensein des fpm-Ordners bestätigt, dass PHP-FPM verfügbar ist und konfiguriert werden kann.

In das Pool-Konfigurationsverzeichnis wechseln:

$ cd /etc/php/7.4/fpm/pool.d/

Die Standard-Pool-Konfigurationsdatei bearbeiten:

Den Pool-Namen überprüfen:

User- und Group-Einstellungen prüfen:

user = www-data
group = www-data

Socket-Pfad kontrollieren:

listen = /run/php/php7.4-fpm.sock

Pool-Konfiguration anpassen:

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

Erklärung der wichtigsten Direktiven:

  • pm: Legt den Prozess-Manager-Typ fest (static, dynamic, ondemand).
  • pm.max_children: Definiert die maximale Anzahl an Kindprozessen.
  • pm.start_servers, pm.min_spare_servers, pm.max_spare_servers: Steuern die Anzahl laufender und inaktiver Prozesse.
  • pm.process_idle_timeout: Beendet inaktive Prozesse nach einer festgelegten Zeit.
  • access.log: Protokolliert alle eingehenden Anfragen.
  • slowlog & request_slowlog_timeout: Erfassen langsamer Anfragen zur Optimierung.

Speichern und schließen Sie die Datei, anschließend PHP-FPM neu starten, um die Änderungen zu übernehmen:

$ sudo systemctl restart php7.4-fpm

PHP und PHP-FPM testen

PHP ist für die Ausführung dynamischer Inhalte zuständig, während PHP-FPM die Verarbeitung optimiert und effizient steuert. Um die Funktionsfähigkeit zu prüfen, erstellen Sie eine Beispiel-PHP-Datei mit dem Nginx-Webserver.

Zum Home-Verzeichnis wechseln:

Eine neue Datei sample.php erstellen:

Folgenden Inhalt einfügen:

Datei speichern und schließen.

Das Skript mit der PHP-CLI ausführen:

Erwartete Ausgabe:

Greetings from centron! PHP is working correctly on this server

Damit ist bestätigt, dass PHP dynamische Dateien korrekt verarbeitet.

Nginx mit PHP-FPM konfigurieren

Installieren Sie Nginx, um die Integration mit PHP-FPM zu testen:

$ sudo apt install nginx -y

Standard-Virtual-Host-Config sichern:

$ sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.BAK

Neue Standardkonfiguration anlegen:

$ sudo nano /etc/nginx/sites-available/default

Konfiguration hinzufügen:

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/php7.4-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}

Diese Konfiguration lauscht auf Port 80, liefert Dateien aus /var/www/html aus und leitet PHP-Anfragen an den PHP-FPM-Socket weiter.

Konfiguration testen:

Die Ausgabe sollte bestätigen, dass keine Syntaxfehler vorhanden sind.

Neue Datei /var/www/html/test.php erstellen:

$ sudo nano /var/www/html/test.php

Folgenden Inhalt einfügen:

Diese Datei zeigt die installierte PHP-Version und Konfigurationsdetails im Browser an.

Apache stoppen (falls aktiv), um Port 80 freizugeben:

$ sudo systemctl stop apache2

HTTP-Zugriff über UFW erlauben:

Nginx neu starten:

$ sudo systemctl restart nginx

Im Browser aufrufen:

http://SERVER-IP/test.php

Mehrere PHP-Versionen installieren

Um weitere Versionen wie PHP 8.1 zu nutzen, fügen Sie das Repository ppa:ondrej/php hinzu.

PPA hinzufügen:

$ sudo add-apt-repository -y ppa:ondrej/php

PHP 8.1 und den zugehörigen FPM-Dienst installieren:

$ sudo apt install -y php8.1 php8.1-fpm

PHP 8.1-Version prüfen:

Beispielausgabe:

PHP 8.1.32 (cli) (built: Mar 13 2025 18:26:45) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.32, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.32, Copyright (c), by Zend Technologies

Status des PHP-FPM-Dienstes überprüfen:

$ sudo systemctl status php8.1-fpm

Die Ausgabe sollte bestätigen, dass der Dienst aktiv und in Betrieb ist.

Neues Webverzeichnis für PHP 8.1-Anwendungen anlegen:

$ sudo mkdir -p /var/www/php81-site

Testdatei kopieren und als index.php speichern:

$ sudo cp /var/www/html/test.php /var/www/php81-site/index.php

Neue Nginx-VHost-Datei erstellen:

$ sudo nano /etc/nginx/sites-available/php81-site.conf

Konfiguration einfügen:

server {
    listen 9000;
    listen [::]:9000;

    root  /var/www/php81-site;

    index index.php index.html;

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}

Diese Konfiguration liefert Inhalte aus /var/www/php81-site über PHP 8.1-FPM und lauscht auf Port 9000.

Virtuellen Host aktivieren:

$ sudo ln -s /etc/nginx/sites-available/php81-site.conf /etc/nginx/sites-enabled/

Nginx-Konfiguration erneut testen:

Port 9000 in der Firewall freigeben:

$ sudo ufw allow 9000/tcp
$ sudo ufw reload

Nginx neu starten:

$ sudo systemctl restart nginx

Im Browser öffnen:

http://SERVER-IP:9000

Daraufhin wird die PHP-8.1-Info-Seite angezeigt. Mit /test.php können Sie parallel prüfen, dass PHP 7.4 weiterhin unabhängig funktioniert.

Fazit

Sie haben erfolgreich PHP und PHP-FPM auf Ubuntu 20.04 eingerichtet. Mehrere PHP-Versionen stehen für unterschiedliche Projekte bereit und sind über Nginx sicher integriert, um dynamische Webinhalte performant zu verarbeiten.

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:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

Passbolt auf Linux installieren & sicher konfigurieren

Security, Tutorial
Passbolt auf Linux-Distributionen installieren und einrichten Passbolt ist ein Open-Source-Passwortmanager, der die sichere Speicherung und Verwaltung von Passwörtern sowie sensiblen Daten mit Ende-zu-Ende-Verschlüsselung ermöglicht. Er funktioniert hauptsächlich als Browser-Erweiterung für…