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