PHP-FPM (FastCGI Process Manager) ist die beliebteste alternative Implementierung von PHP FastCGI. PHP (Abkürzung für PHP: Hypertext Preprocessor) ist eine der beliebtesten Open-Source-Programmiersprachen im Internet. PHP wird für die Webentwicklung in Plattformen wie Magento, WordPress oder Drupal verwendet. Ursprünglich war es zur Vorverarbeitung von Klartext in UTF-8 entwickelt worden.
PHP wurde 1995 von Rasmus Lerdorf entwickelt und war eine der ersten Sprachen, die in HTML-Code eingebunden werden konnten, ohne dass externe Dateien aufgerufen werden mussten. Diese universelle Skriptsprache auf der Serverseite hat sich ständig weiterentwickelt, so dass jedes Betriebssystem und jede Webplattform sie unterstützen kann. Außerdem entwickelt sich PHP ständig weiter und wird unter der PHP-Lizenz veröffentlicht, die aufgrund von Nutzungsbeschränkungen des Begriffs PHP nicht mit der GNU General Public License kompatibel ist.
Was ist PHP-FPM und welche Funktionen hat es?
PHP-FPM ist die beliebteste alternative Implementierung von PHP FastCGI. Es bietet zusätzliche Funktionen, die für stark frequentierte Websites sehr nützlich sind. Ein paar davon sind:
- Erweitertes Management, das einfaches Stoppen/Starten von Prozessen möglich macht.
- Möglichkeit, Worker mit verschiedenen uid/gid/chroot/environment und verschiedenen php.ini zu starten; ersetzt safe_mode.
- Stdout– und stderr-Protokollierung.
- Notfall-Neustart im Falle einer versehentlichen Zerstörung des Opcode-Caches.
- Beschleunigte Unterstützung für Uploads.
- Slowlog-Variablenkonfiguration; zum Erkennen, welche Funktionen ungewöhnlich viel Zeit für die Ausführung benötigen.
- Auf Basis von php.ini-Konfigurationsdateien.
- Verbesserungen von FastCGI wie fastcgi_finish_request(); eine spezielle Funktion zum Anhalten und Herunterladen aller Daten, während Sie einen längeren Prozess wie Videokonvertierungen oder Statistikverarbeitung ausführen.
- Grundlegende Statistiken (ähnlich dem Modul mod_status von Apache) NEU!
Nginx und PHP-FPM: eine perfekte Kombination
Nginx ist als stabiler Hochleistungs-Webserver mit sehr geringem Ressourcenverbrauch die perfekte Ergänzung zu PHP-FPM. Nginx hat eine asynchrone Architektur, die viel besser skalierbar ist und auf Events basiert. Außerdem wird bei Verwendung von Nginx mit PHP-FPM die Leistung in Bezug auf Speicherverbrauch verbessert.
PHP läuft als separater Dienst, wenn PHP-FPM verwendet wird. Bei Verwendung dieser PHP-Version als Interpreter werden Anfragen über einen TCP/IP-Socket verarbeitet, so dass der Nginx-Webserver nur die HTTP-Anfragen verarbeitet und PHP-FPM den PHP-Code interpretiert. Dass es zwei getrennte Dienste gibt, ist der Schlüssel zu mehr Effizienz.
HHVM: eine ehemalige Alternative zu PHP-FPM
Derzeit wird HHVM nicht mehr verwendet. Mit Erscheinen der letzten PHP-Version zusammen mit FPM wurde die Leistung dieser Sprache gleichgestellt oder sogar verbessert, ohne dass HHVM verwendet werden muss – sie ist mit den meisten Funktionen von PHP 7 kompatibel.
Bis zur Vorstellung von PHP 7 wurde häufig der von Facebook entwickelte und auf GitHub mit PHP- und Zend-Lizenzen veröffentlichte PHP HHVM-Prozessor verwendet. HHVM (HipHop Virtual Machine) ist eine quelloffene virtuelle Maschine auf der Grundlage des JIT-(Just-in-Time)-Compilers, die als Ausführungsengine für PHP und Hack dient.
Durch Verwendung des JIT-Compiler-Prinzips führt HHVM PHP- oder Hack-Code zunächst als HipHop-Bytecode aus. Dieser Code wird anschließend in Maschinencode übersetzt, nativ optimiert und ausgeführt. Das steht im Gegensatz zu der üblichen interpretierten Ausführung von PHP, wobei die Zend Engine den PHP-Quellcode in Opcode (Bytecode-Form) umwandelt, der von der virtuellen CPU der Zend Engine ausgeführt wird.
PHP 7 und künftige Versionen von PHP
Mit der Vorstellung von PHP 7 wurde die Leistung im Vergleich zu früheren PHP-Versionen erheblich gesteigert. Die Folge war, dass Anwendungen wie HHVM, die zur Beschleunigung von Diensten eingesetzt wurden, nicht mehr genutzt wurden. In diesem PHP-Vergleich können Sie sich die Unterschiede zwischen den verschiedenen PHP-Versionen für mehrere Aufgaben ansehen. Die Vergleichsgrafik zeigt, wie sich die Leistung seit PHP 5 fast verdoppelt hat.
Für die nächste Hauptversion PHP 8 scheint sich die Entwicklung auf die Einführung neuer Funktionen zu konzentrieren, statt die Geschwindigkeit erheblich zu verbessern. Um zu vermeiden, dass eine Anwendung nach dem Update nicht mehr funktioniert, muss die Kompatibilität zwischen Anwendungen und Änderungen in der neuen Version bei der Aktualisierung berücksichtigt werden.
WordPress mit PHP-FPM
Wenn Sie eine Content-Plattform, eine Online-Zeitung oder einfach ein WordPress haben, das eine hohe Leistung verlangt und Tausende oder Millionen Besuche erhält, brauchen Sie ganz offensichtlich ein Nginx mit PHP-FPM-Unterstützung. So können Sie die Ausführung von PHP-Code Ihres WordPress-CMS viel effizienter einrichten.
Magento mit PHP-FPM
Auch die eCommerce-Plattform Magento lässt sich gut mit Nginx und PHP-FPM integrieren. Für eine optimale Leistung in Ihrem Online-Shop ist es neben der Verwendung von Balancern und Caches wichtig, diesen beliebten Webserver mit Unterstützung für PHP-FPM zu nutzen.
Stackscale kann Ihnen mit Infrastruktur und Private-Cloud-Lösungen helfen, wie auch mit Sysadmin für Ihr Magento oder WordPress.