Tutorials  /  Ubuntu

PHP & PHP-FPM auf Ubuntu 20.04 installieren [Anleitung]

Ccentron Redaktion · Oktober 2025 ·8 Min. Lesezeit ·Ubuntu, Tutorial

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.
VM

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

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:

Konsole
$ sudo apt update

PHP installieren:

Konsole
$ sudo apt install php -y

Die installierte PHP-Version überprüfen:

Konsole
$ php -v

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:

Konsole
$ 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:

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

Installierte Erweiterungen anzeigen:

Konsole
$ 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 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:

Konsole
$ sudo apt install php-fpm -y

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

Konsole
$ php-fpm7.4 -v

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:

Konsole
$ ls /etc/php/7.4/

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:

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

Die Standard-Pool-Konfigurationsdatei bearbeiten:

Konsole
$ sudo nano www.conf

Den Pool-Namen überprüfen:

Code
[www]

User- und Group-Einstellungen prüfen:

Code
user = www-data
group = www-data

Socket-Pfad kontrollieren:

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

Pool-Konfiguration anpassen:

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

Konsole
$ 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:

Konsole
$ cd

Eine neue Datei sample.php erstellen:

Konsole
$ nano sample.php

Folgenden Inhalt einfügen:

Code
<!--?php echo "Greetings from centron! PHP is working correctly on this server"; ?-->

Datei speichern und schließen.

Das Skript mit der PHP-CLI ausführen:

Konsole
$ php sample.php

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:

Konsole
$ sudo apt install nginx -y

Standard-Virtual-Host-Config sichern:

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

Neue Standardkonfiguration anlegen:

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

Konfiguration hinzufügen:

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

Konsole
$ sudo nginx -t

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

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

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

Folgenden Inhalt einfügen:

Code
<!--?php phpinfo(); ?-->

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

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

Konsole
$ sudo systemctl stop apache2

HTTP-Zugriff über UFW erlauben:

Konsole
$ sudo ufw allow 80

Nginx neu starten:

Konsole
$ 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:

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

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

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

PHP 8.1-Version prüfen:

Konsole
$ php8.1 -v

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:

Konsole
$ 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:

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

Testdatei kopieren und als index.php speichern:

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

Neue Nginx-VHost-Datei erstellen:

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

Konfiguration einfügen:

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

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

Nginx-Konfiguration erneut testen:

Konsole
$ sudo nginx -t

Port 9000 in der Firewall freigeben:

Konsole
$ sudo ufw allow 9000/tcp
$ sudo ufw reload

Nginx neu starten:

Konsole
$ 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.

Jetzt 200 € Guthaben sichern

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.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Ubuntu
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren