PHP ist eine beliebte, universelle Skriptsprache, die sich besonders für die Webentwicklung eignet. Sie ist schnell, flexibel und pragmatisch und wird von Blogs bis hin zu den beliebtesten Websites der Welt verwendet. PHP bietet umfassende Unterstützung für verschiedene Datenbanken und ist damit ein unverzichtbares Tool für serverseitiges Scripting.
Die folgende Anleitung zeigt die Schritte zur Installation von PHP auf Rocky Linux 9 oder 8 mithilfe von Befehlszeilenbefehlen. Die Installationsmethode beinhaltet die Verwendung des Remi RPM-Repository für die neuesten stabilen Builds von PHP 8.1, 8.2 und 8.3.
Remi PHP RPM Repo importieren
Aktualisieren Sie Rocky Linux vor der PHP-Installation
Beginnen Sie mit der Aktualisierung Ihres Rocky Linux-Systems, um es für die PHP-Installation vorzubereiten. Öffnen Sie das Terminal und geben Sie ein:
sudo dnf upgrade --refresh
PHP Remi Repository importieren
EPEL-Repository-Einrichtung
EPEL (Extra Packages for Enterprise Linux) ist für zusätzliche Softwarepakete in Rocky Linux unerlässlich. Nachfolgend finden Sie zwei Optionen zur Installation von EPEL auf Rocky Linux für die neueste Version EL9 oder EL8.
EPEL für Rocky Linux 9 importieren
CRB aktivieren
CRB bietet Zugriff auf weitere Entwicklungstools. Verwenden Sie:
sudo dnf config-manager --set-enabled crb
EPEL-Repositories installieren
So erhalten Sie die neuesten EPEL-Versionen für Rocky Linux 9:
sudo dnf install \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm \
https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-9.noarch.rpm
Integrieren Sie das für EL 9 entwickelte Remi-Repository:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y
EPEL für Rocky Linux 8 importieren
PowerTools-Repository aktivieren
PowerTools ist für PHP-Entwicklungstools unverzichtbar.
sudo dnf config-manager --set-enabled powertools
EPEL für Rocky Linux 8 aktivieren
Installieren Sie EPEL-Repositories für Rocky Linux 8:
sudo dnf install \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \
https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-8.noarch.rpm
Importieren Sie das Remi EL 8-Repository
Wenn EPEL installiert ist, importieren Sie das Remi RPM mit PHP für EL 8:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
Aktivieren Sie PHP (8.x) aus dem Remi-Repository
Überprüfen von PHP-Versionen
Bestätigen Sie zunächst die verfügbaren PHP-Versionen im Remi-Repository. Dadurch wird sichergestellt, dass Sie Zugriff auf die gewünschte PHP-Version haben.
Im Terminal ausführen:
dnf module list php
Importieren Sie bei der entsprechenden Aufforderung den GPG-Schlüssel für Remis Repository, indem Sie (Y) eingeben.
Auswählen Ihrer PHP-Version
Aktivieren Sie PHP 8.3
Um PHP 8.3, eine stabile und aktuelle Version, zu installieren, verwenden Sie:
sudo dnf module enable php:remi-8.3 -y
Aktivieren Sie PHP 8.2
Für PHP 8.2, geeignet für Anwendungen, die diese spezielle Version erfordern:
sudo dnf module enable php:remi-8.2 -y
Aktivieren Sie PHP 8.1
So aktivieren Sie PHP 8.1 (ideal für die Kompatibilität mit bestimmten Anwendungen):
sudo dnf module enable php:remi-8.1 -y
PHP-Installation abschließen
Installieren von PHP für Apache- oder Nginx-Support
Nachdem Sie das Remi PHP-Repository aktiviert haben, können Sie PHP installieren, das auf die Anforderungen Ihres Webservers zugeschnitten ist, entweder Apache oder Nginx.
Apache (httpd) PHP-Installation
sudo dnf install php php-cli -y
Nginx PHP Installation
sudo dnf install php-fpm php-cli -y
Überprüfen der PHP-Installation
Bestätigen Sie die PHP-Installation durch Ausführen von:
php -v
Installation von PHP-Erweiterungen
Installieren Sie wichtige PHP-Erweiterungen basierend auf den Anforderungen Ihres Projekts. Vermeiden Sie die Installation aller Erweiterungen, um optimale Leistung und Sicherheit zu gewährleisten.
Standardinstallation
sudo dnf install php-cli php-fpm php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml php-dom php-redis php-memcached php-memcache
Vereinfachte Installation
Für einen kompakten Installationsbefehl:
sudo dnf install php-{cli,fpm,curl,mysqlnd,gd,opcache,zip,intl,common,bcmath,imagick,xmlrpc,json,readline,memcached,redis,mbstring,apcu,xml,dom,memcache}
Lassen Sie uns nun aufschlüsseln, was jede dieser PHP-Erweiterungen macht:
- php-cli: Befehlszeilenschnittstelle für PHP, hilfreich beim Ausführen von PHP-Skripten in der Shell.
- php-fpm: FastCGI-Prozessmanager, nützlich für die Handhabung und Bereitstellung von PHP-Anfragen.
- php-curl: Ermöglicht Ihnen, eine Verbindung zu und eine Kommunikation mit verschiedenen Servertypen und Protokollen herzustellen.
- php-mysqlnd: MySQL Native Driver, wird für MySQL-Datenbankverbindungen verwendet.
- php-gd: Graphics Draw, nützlich zum Erstellen und Bearbeiten von Bilddateien.
- php-opcache: Opcode-Cache, wird verwendet, um die PHP-Ausführung zu beschleunigen.
- php-zip: Ermöglicht Ihnen, mit ZIP-Archiven zu arbeiten.
- php-intl: Internationalisierungserweiterung für die Arbeit mit internationalen Zeichensätzen und Gebietsschemas.
- php-allgemein: Gemeinsame Dateien und Einstellungen, die von mehreren PHP-Modulen verwendet werden.
- php-bcmath: Der Binärrechner ermöglicht Mathematik mit beliebiger Genauigkeit.
- php-imagick: Bietet Methoden zum Erstellen und Ändern von Bildern mithilfe der ImageMagick-Bibliothek.
- php-xmlrpc: Ermöglicht das Erstellen eines XML-RPC-Servers und vereinfacht das Senden von XML-RPC-Anfragen.
- php-json: JSON-Erweiterung (JavaScript Object Notation) zum Kodieren und Dekodieren von JSON-Daten.
- php-readline: Ermöglicht das Lesen einer Datenzeile vom Terminal.
- php-memcached: Bietet schnelles, verteiltes Caching von Speicherobjekten.
- php-redis: PHP-Erweiterung für die Schnittstelle mit Redis.
- php-mbstring: Mehrbyte-Zeichenfolge zur Verarbeitung von Nicht-ASCII-Zeichenfolgen.
- php-apcu: APC User Cache, eine Userland-Caching-Erweiterung basierend auf APC.
- php-xml: XML-Parser zum Parsen von XML-Dokumenten.
- php-dom: Document Object Model, um XML-Dokumente objektorientiert zu bearbeiten.
- PHP-Memcache: Bietet eine praktische prozedurale und objektorientierte Schnittstelle zu Memcached.
- PHP-Soap: Wird zum Schreiben von SOAP-Servern und -Clients verwendet.
- php-ldap: Lightweight Directory Access Protocol zum Zugreifen auf und Verwalten von Verzeichnisinformationen.
- php-pdo: PHP Data Objects, eine Datenbankzugriffsschicht, die eine einheitliche Zugriffsmethode auf mehrere Datenbanken bereitstellt.
Mit dem folgenden Befehl können Sie jederzeit die geladenen Module anzeigen.
php -m
Zur Verbesserung der Leistungseffizienz wird eine regelmäßige Überwachung und Entfernung unnötiger Module empfohlen.
Installieren von PHP-Entwicklungstools
Installieren Sie zu Entwicklungszwecken den PHP-Entwicklungszweig und die Debugging-Tools:
PHP-Entwicklungszweig
sudo dnf install php-devel
PHP-Debugging-Tools
sudo dnf install php-xdebug php-pcov
Beachten Sie, dass die Installation dieser Version mehrere Abhängigkeiten mit sich bringt. Es wird davon abgeraten, sie durchzuführen, es sei denn, Sie benötigen sie ausdrücklich für Ihre PHP-Entwicklung oder haben keine besonderen Anforderungen.
Konfigurieren Sie den PHP-FPM Nginx-Benutzer unter Rocky Linux
Anpassen von PHP-FPM für Nginx
RHEL-basierte Distributionen wie Rocky Linux verwenden standardmäßig den Benutzer „Apache“ für PHP-FPM, was für Nginx-Setups nicht geeignet ist. Für eine optimale Funktion mit Nginx ist eine Änderung unbedingt erforderlich.
Bearbeiten der PHP-FPM-Konfiguration
Konfigurationsdatei öffnen
Greife auf ... zu www.conf
Datei zum Bearbeiten:
sudo nano /etc/php-fpm.d/www.conf
Benutzer- und Gruppeneinstellungen ändern
Ändern Sie den Apache-Benutzer und die Apache-Gruppe in der Datei in Nginx.
Beitragsänderung:
Speichern Sie Ihre Änderungen durch Drücken von (STRG+O) und beenden Sie das Programm dann mit (STRG+X).
Starten Sie den PHP-FPM-Dienst neu
Starten Sie PHP-FPM nach der Änderung der Konfiguration neu, um die Änderungen anzuwenden:
sudo systemctl restart php-fpm
Beispielcode für einen Nginx PHP-FPM-Serverblock
Konfigurieren von Nginx für die PHP-Verarbeitung
Damit Nginx PHP-Dateien verarbeiten kann, muss der Serverblock korrekt konfiguriert werden. Das folgende Beispiel zeigt die notwendige Einrichtung innerhalb des server{}
Block zur Verarbeitung von PHP-Dateien.
Nginx PHP-FPM-Konfiguration
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Überprüfen der Nginx-Konfiguration
Überprüfen Sie die Konfiguration nach der Aktualisierung, um sicherzustellen, dass keine Syntaxfehler vorliegen.
sudo nginx -t
Die erwartete Ausgabe sollte bestätigen, dass die Konfiguration korrekt ist:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Neustart des Nginx-Dienstes
Um die Änderungen anzuwenden, starten Sie den Nginx-Dienst neu:
sudo systemctl restart nginx
Dieser Neustart ist für die Änderungen erforderlich und damit Nginx mit der Verarbeitung von PHP-Dateien mit der neuen Konfiguration beginnen kann.
Abschluss
Okay, damit ist unsere Reise zu Ende! Wir haben PHP erfolgreich auf Rocky Linux eingerichtet, es für Apache oder Nginx optimiert und PHP-FPM für optimale Leistung feinabgestimmt. Denken Sie daran, dass Sie Ihre PHP-Module und -Konfigurationen regelmäßig überprüfen müssen, damit alles reibungslos läuft. Und vergessen Sie nicht, Ihre Dienste nach Änderungen neu zu starten.