В чем отличия между скриптом 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.
Что значит :
Вообще говоря, я бы сказал, что 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
.