PHP версии 5.4, скорее всего, будет включать патч PHP-FPM прямо в ядре, что является отличной новостью для тех из нас, кто любит запускать PHP под веб-сервером nginx . Вы можете спросить: «Что такое PHP-FPM и почему меня это должно волновать?»
PHP-FPM — это патч для ядра PHP, который обрабатывает запуск, остановку и перезапуск процессов FastCGI по мере необходимости. Это важно, потому что nginx может взаимодействовать только с PHP через FastCGI, в отличие от Apache, который загружает всю среду PHP прямо в себя. В дополнение к преимуществам производительности nginx по сравнению с Apache, запуск PHP через FastCGI, а не как модуль Apache, имеет свои преимущества:
- Меньшее использование памяти (поскольку дополнительные работники nginx приходят без полного веса среды PHP)
- Более простое управление разрешениями (PHP может работать от имени другого пользователя, чем ваш серверный процесс)
- Если PHP падает, nginx может продолжать работать
Недостатком является то, что по сравнению с mod_php стек nginx, PHP и FastCGI требует значительно больше работы для настройки. В прошлом, способ заставить эту настройку работать, состоял в том, чтобы выбрать сценарий spawn-fcgi
Тем не менее, есть проблемы с этой настройкой: она хрупкая (если процесс останавливается, он может быть перезапущен неправильно), и это неудобно в настройке. После установки и настройки nginx вам нужно скачать LightTPD, взять рассматриваемый скрипт и настроить его на автоматический запуск, а затем настроить все для приятного совместного воспроизведения. Если вы привыкли к использованию mod_php «из коробки», это может убедить вас просто обновить сервер, а не переходить на более скромный, более сердитый nginx.
Введите PHP-FPM. Этот патч включает управление процессами FastCGI прямо в PHP. Так что, если вы скомпилируете PHP с исправлением FPM и опцией конфигурации --enable-fpm
Конечно, ручное исправление и компиляция исходного кода PHP все еще требует больших усилий, чем хотелось бы нашим ленивым веб-разработчикам, поэтому очень приятно, что начиная с PHP 5.4, FPM будет встроен в ядро проекта PHP.
Это означает, что вы сможете скачать PHP, скомпилировать его с ключом --enable-fpm
Поэтому, если вы пытались запустить PHP с nginx в прошлом и отказались после прыжка через седьмой круг, я бы посоветовал вам попробовать PHP-FPM. На данный момент все еще есть немного хлопот, но это все время улучшается. А пока ты будешь крутым парнем на блоке со сладкой новой игрушкой!