Nodea — logo

PHP-FPM

PHP-FPM (FastCGI Process Manager) to alternatywna implementacja mechanizmu FastCGI dla PHP, która zarządza pulą procesów roboczych wykonujących kod aplikacji. Zamiast uruchamiać interpreter osadzony w procesie serwera WWW, PHP-FPM działa jako osobna usługa w tle, przyjmując żądania przez gniazdo TCP lub gniazdo uniksowe. To dziś standardowy sposób uruchamiania PHP na serwerach produkcyjnych.

Jak działa PHP-FPM?

PHP-FPM utrzymuje jedną lub więcej pul (pools) procesów potomnych, gotowych do natychmiastowego obsłużenia żądania. Serwer WWW — najczęściej Nginx lub Apache — przekazuje żądanie PHP protokołem FastCGI do wolnego workera, który wykonuje skrypt i zwraca wynik. Ponieważ procesy są utrzymywane między żądaniami, znika koszt ciągłego startu interpretera.

Kluczowa jest konfiguracja menedżera procesów: tryb dynamic, static lub ondemand decyduje, ile workerów jest utrzymywanych i jak pula rośnie pod obciążeniem. Parametry takie jak pm.max_children ograniczają liczbę równoczesnych procesów, chroniąc serwer przed wyczerpaniem pamięci — każdy worker zużywa jej tyle, ile pozwala memory_limit. W połączeniu z OPcache PHP-FPM osiąga bardzo wysoką wydajność.

Zastosowanie w praktyce

PHP-FPM to domyślny sposób obsługi PHP na nowoczesnych serwerach VPS i dedykowanych oraz w większości hostingów współdzielonych. Rozdzielenie serwera WWW od wykonywania PHP pozwala niezależnie skalować oba komponenty: Nginx serwuje statykę i terminuje HTTPS, a PHP-FPM zajmuje się wyłącznie logiką aplikacji.

W praktyce administratorzy tworzą osobne pule dla różnych aplikacji lub użytkowników, izolując je pod względem uprawnień i limitów zasobów. Dzięki temu awaria czy przeciążenie jednej witryny nie wpływa na pozostałe. Na zarządzanych serwerach Nodea PHP-FPM jest konfigurowany pod profil ruchu aplikacji, co przekłada się na krótsze czasy odpowiedzi i stabilne zużycie pamięci nawet w godzinach szczytu.

Powiązane pojęcia

Najczęstsze pytania

Czym różni się PHP-FPM od mod_php?

mod_php osadza interpreter PHP bezpośrednio w procesie serwera Apache, przez co każdy proces WWW obciąża pamięć nawet przy serwowaniu plików statycznych. PHP-FPM działa jako osobna usługa łączona przez FastCGI, dzięki czemu serwer WWW i wykonywanie PHP skalują się niezależnie. To rozwiązanie wydajniejsze i standardowe przy pracy z Nginx.