PHP. Различия между Fast-CGI, CGI, Mod-PHP, SuPHP, PHP-FPM

04 февраля 2019
7023
Fast-CGI
Mod-PHP
php

tl;dr:

  • CGI, Fast-CGI являются протоколами; CGI медленный, Fast-CGI намного быстрее
  • mod_php (с подчеркиванием) и PHP-FPM - два основных способа запуска PHP
  • mod_SuPHP похож на mod_php, но может изменять пользователя / группу, под которой запускается процесс.

Полная версия:

Во-первых, есть два протокола:

CGI-скрипты - это способ запуска какого-либо серверного скрипта при получении HTTP-запроса; этот протокол не имеет ничего общего с PHP.

FastCGI - «лучше, чем CGI» - известно, что CGI медленный, Fast CGI - это другой подход с гораздо более быстрыми результатами; этот протокол также не имеет ничего общего с PHP.

А вот что связано с PHP напрямую:

  • mod_php запускает PHP как модуль вебсервера Apache. Запрос PHP выполняется под процессом Apache со всем, что с ним связано. Например PHP запускается с теми же правами, что и Apache и т. д.
  • PHP-FPM - это PHP-реализация FastCGI; PHP-FPM работает как самостоятельный сервер FastCGI, и Apache подключается к серверу с помощью модуля Apache, обычно mod_fcgid или mod_fastcgi. Это лучше, чем запускать PHP через mod_php. В этой конфигурации права доступа и все остальное выполняется в конфигурации PHP. Apache подключается к PHP как к серверу. В этой конфигурации также возможно иметь пул PHP-серверов и иметь PHP-сервер на физически отличной машине от Apache. Это почти так же быстро, как использование модуля Apache, при этом контроля над конфигурацией PHP больше.
  • SuPHP - в основном использовалось для решения некоторых проблем mod_php, связанных с разрешениями; с mod_php PHP-скрипты запускаются под пользователем / группой Apache; mod_suphp может запускать скрипты от другого пользователя.
Мы используем файлы cookie для предоставления наших услуг, а также для аналитики и маркетинга. Продолжая просматривать наш веб-сайт, вы соглашаетесь на использование нами файлов cookie.
ОК