Подтвердить что ты не робот

В чем разница между mod_php и cgi PHP скрипт?

В чем разница между mod_php и cgi php script?

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

Спасибо

4b9b3361

Ответ 1

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

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


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

Это означает:

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


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

Ответ 2

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

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

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

Ответ 3

Кроме того, 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.