Режимы работы PHP на VPS

PHP — это скриптовый язык программирования. Он используется для создания сайтов и поддерживается на большинстве серверов. PHP может взаимодействовать с веб-сервером в разных режимах:

  • mod_php — дополнительный модуль Apache, который работает как часть веб-сервера;
  • Fast CGI — может взаимодействовать с Nginx или Apache. Также работает со связкой Nginx+Apache;
  • PHP FPM — альтернатива FastCGI, которая может взаимодействовать с Nginx.

О принципах работы каждого из режимов расскажем ниже. 

Как работает mod_php

mod_php — это модуль Apache. Он обрабатывает все PHP-скрипты самостоятельно, не прибегая к другим модулям. Благодаря этому запросы выполняются быстрее. Также mod_php позволяет вводить переменные PHP в файле .htaccess. Этот модуль подходит для сайтов, на которых нужно обрабатывать преимущественно динамические данные.

mod_php имеет следующие недостатки:

  • всем пользователям нужно выдавать права веб-сервера: без прав невозможно внести изменения на сервере;
  • низкий уровень безопасности: невозможно определить пользователя, который запустил какой-либо процесс, так как все процессы выполняются под именем apache;
  • медленно обрабатываются статические данные;
  • ошибки в скриптах могут помешать работе всего сервера.

Как работает PHP CGI и FastCGI

CGI — это стандарт, который определяет, как веб-сервер должен взаимодействовать со скриптами. Используется редко, так как считается устаревшим.

FastCGI — это стандарт, который создан на базе CGI. Он определяет, как веб-сервер должен взаимодействовать со скриптом.

Принципы работы FastCGI:

  • скрипт загружается в память один раз, а затем он попадает в цикл обработки запросов от HTTP-сервера;
  • процесс-скрипт обрабатывает запросы по одному, в порядке очереди.

FastCGI одинаково работает со статическими и динамическими данными. Также он имеет следующие преимущества:

  • каждый скрипт запускается от имени отдельного пользователя. Если запустить небезопасный PHP-скрипт, он не повлияет на файлы других пользователей сервера;
  • пользователь имеет все права на выполнение скриптов в пределах своего WWW-домена;
  • каждый пользователь сервера может выбирать версию PHP;
  • сервер не останавливается, если в скрипте есть ошибка;
  • можно вносить переменные в файл .htaccess.

FastCGI имеет два недостатка:

  • меньшая производительность (если сравнивать с mod_php),
  • медленная обработка статических данных (если нет связки с Nginx).

Как работает PHP FPM

FPM создан как альтернативная версия FastCGI. Это единственный модуль, который подходит для чистого Nginx.

Основные преимущества FPM:

  • нет необходимости в веб-сервере Apache,
  • низкое потребление оперативной памяти,
  • быстрая обработка статических данных благодаря совместимости с Nginx.

Единственный недостаток PHP FPM — это отсутствие поддержки файла .htaccess. Из-за этого нужно настраивать правила на стороне Nginx.

Если вы не нашли ответ, спросите у нас!
Запросить поддержку