PHP-FPM — менеджер процессов PHP FastCGI

PHP-FPM — это альтернативная реализация PHP FastCGI с несколькими дополнительными возможностями, которые обычно используются для высоконагруженных сайтов.

FastCGI, PHP и PHP-FPM

FastCGI это высокопроизводительный и масштабируемый интерфейс для взаимодействия web-сервера и приложений, дальнейшее развитие технологии CGI. Основное преимущество FastCGI в изолировании динамического языка от web-сервера — запуск FastCGI процесса возможен под пользователем, отличным от пользователя web-сервера, а также процесс может находиться в chroot'е, отличном от chroot'а web-сервера. Помимо всего прочего, эта технология позволяет запускать web-сервера и CGI процессы (php скрипты, в случае php-fpm) на различных хостах, что улучшает масштабируемость и также способствует безопасности без существенной потери в производительности.

PHP «умеет» работать в режиме FastCGI и без PHP-FPM, но PHP-FPM устраняет ряд проблем мешающих использовать PHP в режиме FastCGI на высоконагруженных системах.

PHP-FPM — это:

  • продвинутое управление процессами с корректной процедурой остановки и запуска;
  • возможность запуска воркеров с различными окружением (uid, gid, chroot);
  • возможность запуска воркеров на различных портах с использованием разных конфигураций php.ini;
  • логирование стандартных потоков вывода (stdout) и ошибок (stderr);
  • аварийный перезапуск в случае внезапного разрушения opcode-кэша;
  • поддержка ускоренной загрузки (accelerated upload);
  • логирование медленно выполняющихся скриптов (включая трассировки);
  • динамическое или статическое порождение дочерних процессов;
  • доступность базовой информации о статусе SAPI (аналогично Apache mod_status);
  • конфигурация php-fpm.conf основана на стандартном синтаксисе php.ini.

Использование PHP-FPM

Наиболее часто используется связка nginx и PHP-FPM, которая работает эффективнее «классического» использования Apache с mod_php, а в ряде случаев показывает более высокую производительность, нежели более «продвинутое» использование в качестве фронтенда веб-сервера nginx, а в качестве бекенда — Apache с mod_php.

PHP — язык программирования, который наиболее распространён в сфере веб-разработки.

В сфере создания динамических веб-сайтов и веб-приложений PHP занимает значительную долю рынка. Практически все популярные CMS для веб-разработки написаны на PHP. Наиболее важные преимущества PHP — простота освоения, адекватная скорость работы, мультипарадигмальность. Критикуют PHP обычно за низкий средний уровень разработчиков и, как следствие, за низкую культуру разработки, проблемы с сопровождаемостью и надёжности проектов.

Узнать больше →

PHP — язык для веб-разработки, который можно назвать основным для «масс-маркета», то есть для разработки типовых сайтов на коробочных CMS.

PHP — скриптовый язык общего назначения, часто применяемый для разработки веб-сайтов.

PHP — интерпретируемый язык программирования, позволяющий создавать программы в процедурном и объектно-ориентированном стиле. PHP — хороший язык для разработки проектов на CMS. И c технической точки зрения современный PHP весьма неплох. Но экосистема языка и особенности кадрового рынка делают PHP не самым лучшим выбором для разработки сложных проектов.

Узнать больше →

Cтатьи по теме:

Хостинг сайтов и веб-приложений
Это услуга по предоставлению дискового пространства и вычислительных ресурсов на сервере, постоянно находящемся в сети интернет. Обычно под понятием услуги хостинга подразумевают как минимум услугу размещения файлов сайта на сервере, на котором запущено ПО, необходимое для обработки запросов к этим файлам (веб-сервер).
Виртуальный хостинг — экономное решение, но практически без гарантий
Виртуальный хостинг — самый экономичный, но при этом и наименее надёжный вариант размещения сайта. Его достаточно только для размещения простых ненагруженных веб-сайтов, для которых не особо важны производительность и отказоустойчивость.
Виртуальный выделенный сервер (VPS или VDS)
Для небольших проектов это оптимальный вариант по соотношению «цена / качество». Клиенту предоставляется виртуальная машина с гарантией выделения места на диске, оперативной памяти и процессорного времени сервера.
Выделенные сервера, кластеры и облачные решения
Серьёзные проекты требуют серьёзных хостинговых решений. Для средних проектов может хватить одного выделенного сервера, а для больших нагруженных сайтов нужны кластерные или облачные решения.
Рекомендации по выбору хостинга
От правильности выбора хостинга зависит дальнейшая работоспособность сайта и его доступность, поэтому к этому вопросу надо отнестись достаточно серьёзно.
Серверное программное обеспечение
На серверах устанавливается программное обеспечение, которое требуется для работы сайта и других служб домена, для обслуживания и мониторинга, а также для защиты от взлома и устойчивости к нагрузкам.
Безопасность сайтов и веб-приложений
​Под безопасностью веб-сервисов, как правило, понимается обеспечение сохранности данных и их недоступность для посторонних лиц, а также способность приложения сохранять работоспособность при кибератаках и не подвергаться заражению вирусами.

Тематические технологии:

Red Hat Enterprise Linux
CentOS
Система управления конфигурациями Ansible
Docker
Веб-сервер NGINX
Kubernetes
Система управления сайтами UMI.CMS
Yii