PHP 5.6 auf Rocky Linux 9 aus dem Quellcode installieren
PHP (Hypertext Preprocessor) ist eine weit verbreitete serverseitige Skriptsprache, die sich besonders für die Webentwicklung eignet. Die Version 5.6 bringt verschiedene Leistungsverbesserungen, Kompatibilität mit älteren Erweiterungen sowie Unterstützung für dynamische Module. Damit lassen sich dynamische Webseiten entwickeln, Daten verarbeiten und Datenbanken wie MySQL, Valkey und PostgreSQL nahtlos einbinden.
In dieser Anleitung wird gezeigt, wie man PHP 5.6 auf Rocky Linux 9 installiert. Obwohl diese Version das End-of-Life erreicht hat, setzen einige Anwendungen sie noch voraus und benötigen bestimmte Module. Sie lernen hier, wie man PHP 5.6 installiert und PHP-FPM so konfiguriert, dass es mit Backend-Diensten verbunden werden kann.
Voraussetzungen
Bevor Sie starten, stellen Sie sicher, dass Sie Folgendes haben:
- Zugang zu einem Rocky Linux 9 Server als Nicht-Root-Benutzer mit Sudo-Rechten
Benötigte Abhängigkeiten für PHP 5.6 installieren
PHP 5.6 ist weder in den Standard-Repositories noch in Drittanbieterquellen für Rocky Linux 9 enthalten. Für den Betrieb wird OpenSSL 1.0.2 benötigt. Im Folgenden installieren Sie die Abhängigkeiten und bauen PHP 5.6 aus dem Quellcode.
Aktuelle OpenSSL-Version prüfen
$ openssl --version
Die Ausgabe sollte etwa so aussehen:
OpenSSL 3.2.2 4 Jun 2024 (Library: OpenSSL 3.2.2 4 Jun 2024)
Paketindex aktualisieren
$ sudo dnf update -y
PHP- und OpenSSL-Abhängigkeiten installieren
$ sudo dnf install -y gcc gcc-c++ make bison autoconf libxml2-devel bzip2-devel curl-devel libjpeg-devel libpng-devel libXpm-devel freetype-devel gmp-devel libmcrypt-devel readline-devel libxslt-devel libicu-devel libxml2-devel bzip2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel libxslt-devel perl-core zlib-devel
OpenSSL 1.0.2 installieren
Zum Quellverzeichnis wechseln
$ cd /usr/local/src
OpenSSL herunterladen und entpacken
$ sudo wget https://www.openssl.org/source/openssl-1.0.2u.tar.gz
$ sudo tar -xvzf openssl-1.0.2u.tar.gz
$ cd openssl-1.0.2u
OpenSSL konfigurieren und kompilieren
$ sudo ./config --prefix=/usr/local/openssl-1.0.2 --openssldir=/usr/local/openssl-1.0.2 shared zlib
$ sudo make -j$(nproc)
$ sudo make install
OpenSSL-Umgebungsvariablen setzen
$ echo 'export LDFLAGS="-Wl,-rpath,/usr/local/openssl-1.0.2/lib"' >> ~/.bashrc
$ echo 'export CPPFLAGS="-I/usr/local/openssl-1.0.2/include"' >> ~/.bashrc
$ echo 'export PKG_CONFIG_PATH="/usr/local/openssl-1.0.2/lib/pkgconfig"' >> ~/.bashrc
$ echo 'export PATH="/usr/local/openssl-1.0.2/bin:$PATH"' >> ~/.bashrc
$ source ~/.bashrc
OpenSSL-Version überprüfen
$ openssl version -a
Erwartete Ausgabe: OpenSSL 1.0.2u 20 Dec 2019
PHP 5.6 aus dem Quellcode bauen und installieren
PHP-Quellcode herunterladen
$ cd /usr/local/src
$ sudo wget https://museum.php.net/php5/php-5.6.40.tar.gz
$ sudo tar -xzf php-5.6.40.tar.gz
$ cd php-5.6.40
PHP-Kompilierungsoptionen konfigurieren
$ sudo ./configure --prefix=/usr/local/php-5.6.40 --with-openssl=/usr/local/openssl-1.0.2 --enable-mbstring --with-pdo-mysql --with-mysqli --enable-fpm --with-openssl=/usr/local/openssl-1.0.2
Hiermit wird das Installationsverzeichnis festgelegt, Erweiterungen wie mbstring und MySQL eingebunden und OpenSSL 1.0.2 integriert. Treten Fehler auf, prüfen Sie, ob Abhängigkeiten fehlen.
PHP kompilieren und installieren
$ sudo make -j$(nproc)
$ sudo make install
Nach erfolgreichem Bau und Installation sehen Sie Ausgaben wie:
- Installation von Shared Extensions
- Installation der PHP-CLI- und FPM-Binaries
- Generierung von phar.phar und weiteren PHP-Komponenten
PHP-Version prüfen
$ /usr/local/php-5.6.40/bin/php -v
Beispielausgabe:
PHP 5.6.40 (cli) (built: Mar 19 2025 20:03:18)
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
PHP 5.6 FPM auf Rocky Linux 9 installieren und konfigurieren
PHP-FPM (FastCGI Process Manager) ist im Quellcode von PHP 5.6 enthalten und verbessert die Performance, indem es PHP-Prozesse effizienter verwaltet. Die folgenden Schritte zeigen, wie man PHP-FPM 5.6 installiert und als Dienst auf Rocky Linux 9 einrichtet.
PHP-FPM Konfiguration einrichten
Standard-Produktionskonfiguration kopieren:
$ sudo cp /usr/local/src/php-5.6.40/php.ini-production /usr/local/php-5.6.40/lib/php.ini
FPM-Konfigurationsvorlagen kopieren:
$ sudo cp sapi/fpm/php-fpm.conf.in /usr/local/php-5.6.40/etc/php-fpm.conf
$ sudo mkdir -p /usr/local/php-5.6.40/etc/php-fpm.d
$ sudo cp sapi/fpm/www.conf.in /usr/local/php-5.6.40/etc/php-fpm.d/www.conf
PHP 5.6 Binaries zum System-PATH hinzufügen und Shell-Konfiguration neu laden:
$ echo 'export PATH="/usr/local/php-5.6.40/bin:$PATH"' >> ~/.bashrc
$ source ~/.bashrc
Nicht-login Service-Benutzer für PHP-FPM erstellen:
$ sudo useradd -r -s /sbin/nologin www-data
PHP-FPM Konfigurationsdateien bearbeiten
Hauptkonfigurationsdatei anpassen:
$ sudo nano /usr/local/php-5.6.40/etc/php-fpm.conf
Folgende Werte eintragen:
pid = /run/php56-fpm/php56-fpm.pid
user = www-data
group = www-data
Anschließend die Standard-Pool-Konfiguration bearbeiten:
$ sudo nano /usr/local/php-5.6.40/etc/php-fpm.d/www.conf
Werte anpassen:
user = www-data
group = www-data
listen = 127.0.0.1:9000
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
FPM Laufzeit- und Log-Verzeichnisse vorbereiten
Erforderliche Verzeichnisse mit passenden Rechten erstellen:
$ sudo mkdir -p /run/php56-fpm
$ sudo chown -R www-data:www-data /run/php56-fpm
$ sudo chmod 755 /run/php56-fpm
$ sudo mkdir -p /usr/local/php-5.6.40/var/log
$ sudo chown -R www-data:www-data /usr/local/php-5.6.40/var/log
$ sudo chmod -R 755 /usr/local/php-5.6.40/var/log
PHP-FPM Konfiguration validieren
Prüfen Sie die Konfigurationsdateien auf Syntaxfehler:
$ sudo /usr/local/php-5.6.40/sbin/php-fpm -t
Erwartete Ausgabe:
[18-Apr-2025 20:34:37] NOTICE: configuration file /usr/local/php-5.6.40/etc/php-fpm.conf test is successful
PHP 5.6 FPM als Systemd-Dienst einrichten
Systemdienst-Datei erstellen
Öffnen Sie eine neue systemd-Dienstdatei für PHP 5.6 FPM:
$ sudo nano /etc/systemd/system/php56-fpm.service
Fügen Sie folgenden Inhalt ein:
[Unit]
Description=PHP 5.6 FastCGI Process Manager
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/php-5.6.40/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php-5.6.40/etc/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
Restart=always
PrivateTmp=true
User=www-data
Group=www-data
WorkingDirectory=/usr/local/php-5.6.40
[Install]
WantedBy=multi-user.target
PHP-FPM Dienst aktivieren und starten
Systemd neu laden und den Dienst aktivieren:
$ sudo systemctl daemon-reload
$ sudo systemctl enable php56-fpm
$ sudo systemctl start php56-fpm
Status des PHP-FPM Dienstes prüfen
Überprüfen, ob der Dienst aktiv ist:
$ sudo systemctl status php56-fpm
Erwartete Ausgabe:
● php56-fpm.service - PHP 5.6 FastCGI Process Manager
Loaded: loaded (/etc/systemd/system/php56-fpm.service; enabled; preset: disabled)
Active: active (running) since Wed 2025-03-19 20:28:17 UTC; 19s ago
Main PID: 223702 (php-fpm)
Tasks: 3 (limit: 23116)
Memory: 2.5M
CPU: 32ms
CGroup: /system.slice/php56-fpm.service
├─223702 "php-fpm: master process (/usr/local/php-5.6.40/etc/php-fpm.conf)"
├─223703 "php-fpm: pool www"
└─223704 "php-fpm: pool www"
Der Dienst läuft erfolgreich, was durch den Status „active (running)“ bestätigt wird.
PHP 5.6 auf Rocky Linux 9 testen und ausführen
Um sicherzustellen, dass PHP 5.6 korrekt funktioniert, führen Sie die folgenden Schritte aus.
PHP-Version überprüfen
$ php --version
Erwartete Ausgabe:
PHP 5.6.40 (cli) (built: Apr 18 2025 14:44:08)
Zend Engine v2.6.0, Copyright (c) 1998–2016 Zend Technologies
PHP-Skript erstellen und ausführen
Neues Skript in Ihrem aktuellen Verzeichnis anlegen:
$ sudo nano app.php
Folgenden Code in die Datei einfügen:
<?php
echo "Greetings from centron! \n";
?>
Skript ausführen:
$ php app.php
Ausgabe:
Greetings from centron!
PHP 5.6 mit Nginx auf Rocky Linux 9 einsetzen
Um dynamische Inhalte mit PHP 5.6 FPM und Nginx bereitzustellen, gehen Sie wie folgt vor.
Nginx installieren und starten
$ sudo dnf install -y nginx
$ sudo systemctl start nginx
Nginx-Status prüfen
$ sudo systemctl status nginx
Beispielausgabe:
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded
Active: active (running)
Nginx Virtual Host Konfiguration erstellen
Neue Serverblock-Konfigurationsdatei anlegen:
$ sudo nano /etc/nginx/conf.d/app.example.conf
Folgende Konfiguration einfügen (ersetzen Sie app.example.com
durch Ihre Domain):
server {
listen 80;
server_name app.example.com;
root /var/www/app.example.com;
index index.php index.html index.htm;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Nginx validieren und neu starten
$ sudo nginx -t
$ sudo systemctl restart nginx
Web-Root und PHP Info-Seite einrichten
$ sudo mkdir -p /var/www/app.example.com
$ sudo nano /var/www/app.example.com/info.php
Inhalt für info.php
hinzufügen:
<?php
phpinfo();
?>
Damit werden PHP-Umgebungsinformationen im Browser angezeigt.
SELinux und Firewall konfigurieren
Nginx die Verbindung zu PHP-FPM erlauben und HTTP-Zugriff in der Firewall öffnen:
$ sudo setsebool -P httpd_can_network_connect 1
$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --reload
Dienste neu starten
$ sudo systemctl restart php56-fpm
$ sudo service nginx restart
Setup im Browser prüfen
Rufen Sie http://app.example.com
im Browser auf. Die PHP-Info-Seite sollte erscheinen und bestätigt die erfolgreiche Integration von Webserver und PHP-FPM.
Sicherheitshinweis
Achtung: PHP 5.6 wird nicht mehr gepflegt und erhält keine Sicherheitsupdates. Verwenden Sie es nur für Altsysteme, die nicht auf neuere Versionen migriert werden können.
Fazit
Sie haben PHP 5.6 und PHP-FPM erfolgreich auf Rocky Linux 9 installiert. Damit können Sie ältere Anwendungen weiterhin betreiben. Für bessere Sicherheit und Performance sollten Sie jedoch auf eine unterstützte PHP-Version umsteigen. Weitere Informationen und Migrationstipps finden Sie in der offiziellen PHP-Dokumentation.