PHP-FPM

Aus Foxwiki

Was ist PHP-FPM und wie kann ich es nutzen?

PHP-FPM ist ein FastCGI-Prozessmanager, der einen stetig laufenden Vorrat an PHP-Prozessen zur schnelleren Verarbeitung von PHP-Scripten vorhält. In Kombination mit dem Cache-Modul OpCache lässt sich mittels PHP-FPM eine deutliche Beschleunigung von PHP-Anwendungen um Faktor 2 und mehr erreichen. Dadurch lässt sich die Ladezeit von PHP-basierenden Webseiten spürbar verkürzen, und somit auch das Ranking bei vielen Suchmaschinen verbessern. Die schnellere Verarbeitung von PHP-Scripten führt auch dazu, dass ein Webserver mehr gleichzeitige Seitenanfragen verarbeiten kann, daher lohnt sich PHP-FPM insbesondere für Webseiten mit relativ vielen Aufrufen.

Hinweis: PHP-FPM lässt sich momentan nur in unseren Pro-Paketen und auf Dedicated-Servern nutzen. Bitte beachten Sie, dass PHP-FPM nicht automatisch für alle Benutzeraccounts auf Pro- und Dedicated-Servern zur Verfügung steht, sondern für jeden Account einzeln freigeschaltet und über eine .htaccess-Datei aktiviert werden muss. Falls Sie PHP-FPM nutzen oder unverbindlich testen möchten, kontaktieren Sie bitte unsere Kundenbetreuung.

PHP-FPM aktivieren

PHP-FPM wird über eine .htaccess-Datei aktiviert, die Sie einfach per (S)FTP im gewünschten Webspace-Verzeichnis ablegen. Die Aktivierung erfolgt dabei mittels folgender Direktiven:

<FilesMatch \.php$>

 SetHandler "proxy:unix:/var/run/php-fpm_u12345.sock|fcgi://localhost/"

</FilesMatch>

Ersetzen Sie dabei "u12345" durch Ihre Webserver-Benutzerkennung. PHP-FPM wird dann für dieses Verzeichnis und alle Unterverzeichnisse genutzt.

Über die phpinfo()-Funktion können Sie prüfen, ob PHP-FPM erfolgreich aktiviert wurde. Sie können dazu unser vorgefertigtes PHP-Script herunterladen, dass Sie auf den Webserver hochladen und dann per Web-Browser aufrufen. Falls PHP-FPM aktiviert ist, steht unter "Server API" "FPM/FastCGI".

PHP-FPM in einem Unterverzeichnis deaktivieren

Falls Sie PHP-FPM in einem bestimmten Unterverzeichnis wieder deaktivieren möchten, können Sie dazu folgende .htaccess-Direktive nutzen:

<FilesMatch \.php$>

 SetHandler none

</FilesMatch>

Die Einstellung gilt dann für dieses Verzeichnis sowie alle Unterverzeichnisse.

PHP-Einstellungen ändern

PHP-FPM wertet keine php.ini-Dateien aus, Sie können jedoch alternativ .user.ini-Dateien nutzen. Diese Dateien gelten - ähnliche wie .htaccess-Dateien - auch für Unterverzeichnisse, sie werden jedoch nur alle 5 Minuten neu geladen. Weiterhin können Sie bei PHP-FPM bestimmte Systemeinstellungen (memory_limit, max_execution_time, allow_url_fopen, zend_extension) nicht selbst ändern. Zur Aktivierung von Zusatzmodulen für PHP-FPM (z.B. IonCube Loader) oder anderen PHP-Konfigurationsänderungen (z.B. allow_url_fopen) wenden Sie sich bitte an unsere Kundenbetreuung.

PHP-Version ändern

Beachten Sie bitte, dass die von PHP-FPM genutzte PHP-Version für jeden Webserver-Account fest vorgegeben ist, und nicht von Ihnen selbst geändert werden kann. Um die PHP-FPM-Version ändern zu lassen, wenden Sie sich bitte an unsere Kundenbetreuung.

Was ist php-fpm und wo wird das konfiguriert?

php-fpm ist ein "PHP FastCGI Process Manager", also ein Programm, welches darauf wartet, dass ein Webserver ein php-skript über die CGI-Schnittstelle starten will. php-fpm leitet diese Anfrage an einen bereits bereitstehenden php-Prozess (der auch php-fpm heisst) weiter oder startet im Bedarfsfall einen neuen.

Die Konfigurationseinstellungen dafür befinden sich in /usr/local/etc/php-fpm.conf, welche zusätzlich alle .conf-Dateien unter /usr/local/etc/php-fpm.d einbindet. In der Hauptkonfigurationsdatei befinden sich Parameter, die üblicherweise nicht angefasst werden müssen. An zusätzlichen Konfigs ist in php-fpm.d die Datei www.conf vorinstalliert. Zu beiden Dateien gibt es auch eine Beispieldatei mit der Endung .conf.default, diese Dateien haben keine technische Funktion.

FastCGI Process Manager (FPM)

User Contributed Notes 11 notes

https://www.php.net/manual/de/install.fpm.php

https://www.php.net/manual/de/book.fpm.php

Vorteile von PHP-FPM/FCGI