PHP 5.3.3 z FPM + nginx

php-logoJakoś małym echem w blogosferze rozeszła sie informacja włączenia dodatku PHP-FPM (FastCGI Process Manager) do wersji 5.3.3 PHP.

A jest to duży skok na przód. PHP-FPM jest to patch zawarty w jądrze PHP, który pozwala zarządzać procesami FastCGI: uruchamiać, zatrzymywać, restartować. Jest to wspaniała wiadomość dla wszystkich osób korzystających z PHP poprzez FastCGI (np. nginx, lighttpd). Do tej pory trzeba było sie np. kłopotać z spawn-fcgi.

Większość osób, które dokonują standardowej instalacji Apache jako serwer WWW + PHP nawet nie zdają sobie sprawy jak to działa. Apache domyślnie obsługuje PHP poprzez własny moduł (mod_php) – w skrócie Apache ładuje całe środowisko w siebie. Dzięki wykorzystaniu FastCGI i FPM otrzymujemy:

  • mniejsze zużycie pamięci (dodatkowe workery nginx nie potrzebują środowiska PHP)
  • lepsze zarządzanie uprawnieniami PHP bez gimnastyki
  • gdy PHP padnie nginx nadal działa
  • inteligentne zarządzanie wspólnymi procesami PHP (obniża zużycie pamięci)

Jedyne co należy obecnie zrobić to podczas konfiguracji PHP (przed kompilacją) dodać –enable-fpm.
Skompilowany zarządca będzie czekał w sapi/fpm jako php-fpm. W tym samym katalogu macie również plik konfiguracyjny (php-fpm.conf) oraz skrypt inicjacyjny init.d.php-fpm.

Ja na wszelkich maszynach dedykowanych pod serwery WWW + PHP korzystam właśnie z tej wybuchowej mieszanki.