PHP-lek: het onderhoud is afgerond, al onze servers zijn bijgewerkt. Lees meer PHP-lek: onderhoud afgerond. Lees meer
Bestellen
Hosting
Domeinnaam
Ondersteuning
Ontdek
Terug naar begrippenlijst

PHP-FPM

PHP-FPM (FastCGI Process Manager) draait PHP als een aparte dienst met eigen processen, los van de webserver.

Actueel: PHP-lek PHP2Shell (session.upload_progress): status en wat je moet doen

PHP-FPM

PHP-FPM (FastCGI Process Manager) is de manier om PHP als een aparte dienst naast de webserver te draaien. De webserver ontvangt het verzoek van de bezoeker en geeft het via het FastCGI-protocol door aan PHP-FPM, dat het script uitvoert en de HTML teruggeeft. Bij de oudere opstelling mod_php draait PHP juist als module binnen de webserver Apache zelf.

PHP-FPM werkt met een masterproces en een of meer pools. Een pool is een groep workers, de PHP-processen die de verzoeken afhandelen, met een eigen gebruiker en eigen PHP-instellingen. De instelling pm bepaalt hoe die workers ontstaan: een vast aantal (static), meegroeiend met de drukte (dynamic) of alleen bij vraag (ondemand). Met pm.max_children stel je het maximum aantal gelijktijdige workers in, en met pm.max_requests start een worker na bijvoorbeeld 500 verzoeken opnieuw.

Die scheiding maakt een server stabieler en veiliger, omdat elke site onder een eigen gebruiker kan draaien en een vastgelopen script de webserver niet meeneemt. Bij het PHP-lek van oktober 2026 (CVE-2026-109618) bleek dat ook: de bekende aanval werkte in mod_php, terwijl PHP-FPM het proces bij die fout juist afsluit.

Bij KeurigOnline draait PHP op de VPS'en en de andere DirectAdmin-servers meestal via PHP-FPM. Beheer je zelf een VPS, onthoud dan dat de FPM-master een gewijzigde configuratie pas leest na een herstart of reload. Op een DirectAdmin-server doe je dat bijvoorbeeld met systemctl reload php-fpm83 voor PHP 8.3. Zo'n reload is graceful: lopende verzoeken worden afgemaakt, dus bezoekers merken er niets van.

Geschiedenis

PHP-FPM begon als een patch van Andrei Nigmatulin. Hij wachtte vanaf 2004 op iemand die PHP via FastCGI geschikt maakte voor drukke sites, en schreef het uiteindelijk zelf (php-fpm.org). Het FastCGI-protocol waarop het bouwt, stamt uit 1996 en komt van Open Market (Wikipedia).

Belangrijke mijlpalen:

  • 1996: Open Market publiceert de FastCGI-specificatie
  • 2004: Andrei Nigmatulin begint aan PHP-FPM, eerst als losse patch voor PHP
  • 22 juli 2010: PHP 5.3.3 neemt FPM op als standaard-SAPI
  • 1 maart 2012: PHP 5.4.0 haalt het label experimenteel van FPM af (changelog)

Bronnen