Versionsgeschichte
Die Entwicklung von PHP begann 1995. Wichtige Meilensteine waren:
- PHP 3 (1998): Erste Version mit der Bezeichnung "PHP: Hypertext Preprocessor"
- PHP 4 (2000): Einführung der Zend Engine
- PHP 5 (2004): Verbesserte objektorientierte Programmierung
- PHP 7 (2015): Signifikante Leistungsverbesserungen
- PHP 8 (2020): JIT-Compiler und weitere Optimierungen
Aktuell ist PHP 8.3 die neueste stabile Version, während PHP 8.4 sich in der Entwicklung befindet3.
PHP-FPM
PHP-FPM (FastCGI Process Manager) ist eine alternative PHP-Implementierung mit erheblichen Vorteilen:
- Verbesserte Leistung: PHP-FPM verwendet einen Pool vorgefertigter PHP-Prozesse, was die Startzeit reduziert und Antwortzeiten verbessert.
- Skalierbarkeit: Ermöglicht horizontale Skalierung durch Ausführung mehrerer PHP-FPM-Instanzen.
- Ressourcenkontrolle: Bietet feinere Abstimmung der Ressourcennutzung, z.B. Anzahl der PHP-Prozesse und Speicherlimits.
- Trennung von Webserver und PHP: Erleichtert Wartung und Updates, da PHP-FPM unabhängig vom Webserver läuft.
- Prozess-Management: Ermöglicht anpassbares Prozessmanagement für effiziente Serverressourcennutzung.
- Adaptives Prozess-Spawning: Passt die Anzahl der Worker-Prozesse automatisch an das Verkehrsaufkommen an.
PHP-FPM ist besonders vorteilhaft für hochfrequentierte Websites und anspruchsvolle Anwendungen, die hohe Leistung und Skalierbarkeit erfordern.
PHP und Drupal
Es ist erwähnenswert, dass Drupal, ein beliebtes Content-Management-System, in PHP geschrieben wurde. Drupal nutzt die Stärken von PHP, um leistungsfähige und flexible Websites zu erstellen. Die Verwendung von PHP-FPM kann die Leistung von Drupal-Installationen erheblich verbessern, insbesondere bei Websites mit hohem Datenverkehr.
Aber auch bei der Arbeit mit Drush und Coposer innerhalb unserer Entwicklungsumgebung kann der PHP Fast Process Manager helfen. Mit seiner Hilfe können wir dafür sorgen, dass der PHP-Code, den Drupal ausführt unter dem gleichen Benutzer unter Linux ausgeführt wird, mit dem wir auch Drush und Composer verwenden. So vermeiden wir Probleme bei Besitz- wie auch Schreib- und Leserechten im Dateisystem und können die mit Drupal CMS neu hinzugekommenen Module Project Browser und Automatic Updates einwandfrei verwenden. Damit wir Drupal noch ein Stück zugänglicher. Installationen neuer Module und Aktualisierungen können dank PHP-FPM direkt im Browser druchgeführt werden. Genauere Einzelheiten erfährst du im Video.
So installierst du PHP unter Ubuntu für Drupal
# PHP installieren
sudo apt-get install -y php-mysql php-xml php-json php-curl php-uploadprogress openssl php-mbstring php-gd php-json libssh-4 php-ssh2 php-apcu php-opcache php-fpm
#PHP und Apache miteinander reden lassen
sudo a2enmod proxy_fcgi setenvif rewrite
sudo a2enconf php8.3-fpm
#PHP 8.3 FPM aktiviern
sudo systemctl restart apache2
sudo systemctl enable --now php8.3-fpm
Drupal 11.1 kann PHP 8.3 und PHP 8.4. Wir installieren in der ersten Zeile alle Module, die Drupal in seiner Standardausfertigung braucht um zu funktíonieren. Welche Module dass sind, kannst du in den Systemvoraussetzungen für PHP auf drupal.org nachlesen.
PHP Fast Process Maanager für Druapl Konfigurieren
Damit die Module Project Brower und Automatic Updates bestmöglich funktionieren, du dich aber auch mit DruSh dem Kommandozeilenwerkzeug für Drupal beschäftigen kannst, ohne dass du bei der Vergabe von Eigentumsrechten, bzw. Schreib- und Leseberechtigungen auf Probleme stößt musst du nun dafür sorgen, dass PHP-FPM mit dem gleichen Benutzer ausgeführt wird, mit dem du später auch mit Drush arbeitest.
Gott sei Dank bietet PHP-FPM sogenannte Pools, mit denen man unterschiedliche Web-Anwendungen unterschiedlichen Benutzern auf einem Linux-System zuordnen kann.
Dafür musst du mit folgendem Behel zunächst herausfinden, mit welchem Benutzer du angemeldet bist:
whoami
Der Befehl whoami gibt den Benutzernamen des angemeldeten Benutzers zurück. Wenn du beim Installieren von Ubuntu unseren Anweisungen gefolgt bist,ist dein Benuzername drupal.
Diesen Benutzernamen musst du an der entsprechenden Stelle in der Datei /etc/php/8.3/fpm/pool.d/www.conf eintragen. Dazu öffnest du die Datei zunächst mit dem Editor.
sudo nano /etc/php/8.3/fpm/pool.d/www.conf
Dann änderst du die Stelle:
user = www-data
group = www-data
ab, indem du www-data durch den von whoami angezeigten Benutzerenamen ersetzt. In unserem Fall sieht dass am Ende also so aus:
user = drupal
group = drupal
Damit die Konfiguraiton neu eingelesen werden kann, speicherst du die Datrei mit STRG+O und verlässt den Editor mit STRG+x
Anschließend musst du den Dienst php8.3-fpm noch einmal neu laden, damit der Dienst merkt, dass du seine Konfiguration abgeändert hast. Dass erledigst du mit dem Befehl:
sudo systemctl restart php8.3-fpm
Mit dieser Konfiguration erreichst du, dass alle Dateien die Von Drupal CMS angelegt oder abgeändert werden, z. B. während einer automatischen Aktualisierung über das Modul Automatic Updates, dem Benutzer drupal und der Benutzergruppe Druapl gehören. Somit besteht kein Unterschied mehr. zwischen dem am System angemeldeten Benutzer und dem Benutzer über den PHP-Skripte ausgeführt werden. Dies vermeidet, wie bereits erwähnt Probleme bmit Eigentums-, Scheib- und Leserechten.
PHP-FPM ist extra dafür ausgelegt, verschiedene Web-Anwendungen nebeneinander unter unterschiedlichen Benutzern auf dem selben Server zu betreiben. Dies ist also kein Hack, sondern ein Feature von PHP-FPM.
Da wir nun bereits Apache, unseren Webserver und auch die Skriptsprasche zur Ausführung von Drupal CMS, PHP, installiert haben, können wir im nächten Teil dieser Reihe unser erstes Kommandozeilenwerkzeug installieren. Lies hierzu gerne im nächsten Teil: Composer installieren weiter.