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 существует с 1994 года и версий за это время было выпущено достаточно много. И, что важно знать, не все они обратно совместимы.
Виртуальный выделенный сервер (VPS или VDS)
Для небольших проектов это оптимальный вариант по соотношению «цена / качество». Клиенту предоставляется виртуальная машина с гарантией выделения места на диске, оперативной памяти и процессорного времени сервера.
Выделенные сервера, кластеры и облачные решения
Серьёзные проекты требуют серьёзных хостинговых решений. Для средних проектов может хватить одного выделенного сервера, а для больших нагруженных сайтов нужны кластерные или облачные решения.
Рекомендации по выбору хостинга
От правильности выбора хостинга зависит дальнейшая работоспособность сайта и его доступность, поэтому к этому вопросу надо отнестись достаточно серьёзно.
Серверное программное обеспечение
На серверах устанавливается программное обеспечение, которое требуется для работы сайта и других служб домена, для обслуживания и мониторинга, а также для защиты от взлома и устойчивости к нагрузкам.
Безопасность сайтов и веб‑приложений
Под безопасностью веб‑приложений понимается обеспечение сохранности данных, их недоступность для посторонних лиц, а также способность сервиса сохранять работоспособность при кибератаках.
Безопасность веб‑приложений зависит от качества программного кода (это ответственность веб‑разработчиков), от квалификации системного администратора и регулярности обсуживания серверов, а также от компетенций всех пользователей, имеющих доступ к чувствительной информации.
Отказоустойчивость сайтов и веб‑приложений
Причин для сбоев в работе веб‑приложений немало — это и выход из строя серверного оборудования, и сбои программного обеспечения, и аварии на уровне дата‑центров.
При этом, действительно серьёзные проекты должны работать без перебоев даже в случае отказа отдельных подсистем. Практически всех рисков можно избежать или минимизировать их последствия при помощи грамотного проектирования как серверной инфраструктуры, так и архитектуры приложения.
Сколько стоит поддержка сайта?
Стоимость поддержки сайта зависит от объёма необходимых работ, их вида и сложности.
Ускоряем работу сайта, используя быстрый и надёжный веб‑сервер nginx
nginx — это простой, быстрый и надёжный сервер. Применение nginx очень эффективно для отдачи статического контента и в качестве прокси‑сервера перед динамическими сайтами.