В чем отличия между скриптом mod_php и cgi php?

В чем отличия между скриптом mod_php и cgi php?

Я имею в виду, почему это лучше (это?) Использовать mod_php вместо простых скриптов php, запуская их как CGI?

благодаря

При использовании CGI: PHP-процесс запускается Apache, и именно PHP-процесс интерпретирует PHP-код, а не сам Apache.

Теоретически для каждого запроса должен быть создан отдельный PHP-процесс, что делает вещи медленнее: у Apache больше работы, чтобы ответить на запрос.
(Ну, как отметил @ AlReece45 в комментарии, это можно улучшить с помощью FastCGI)

При использовании PHP в качестве модуля Apache ( mod_php или mod_php5 ) интерпретатор PHP является « встроенным » внутри процесса Apache: нет внешнего процесса PHP.

Что значит :

  • Нет разветвления для ответа на запрос (быстрее)
  • Улучшение связи между Apache и PHP

Вообще говоря, я бы сказал, что mod_php – это решение, которое используется больше всего.

Обычный CGI требует, чтобы процесс был порожден для каждого запроса во время запроса.

mod_php требует, чтобы вы использовали раздутый apache вместо slick nginx или lighttpd. Кроме того, «лучшая коммуникация между Apache и PHP», упомянутая Паскалем, может нанести вред апачу (вредит любому, кто развивается в php! ;-)).

FastCGI позволяет вам отделить php от веб-сервера (возможно, запустить его на другом хосте).

Кроме того, php.net только что выпустила уязвимость сегодня, когда раскрытие исходного кода возможно, если вы используете mod_cgi для запуска PHP, а ваша версия PHP старше PHP 5.3.12 или PHP 5.4.2 .

http://www.php.net/archive/2012.php#id2012-05-03-1

Патч путем обновления или применения правила mod_rewrite .