Назад | Перейти на главную страницу

PHP как двоичный файл CGI против PHP как модуль Apache

Каковы преимущества запуска PHP как двоичного файла CGI по сравнению с запуском PHP как модуля Apache? Здесь:

  1. Преимущества безопасности?
  2. Преимущества стабильности?
  3. Преимущества производительности?

Я всегда устанавливал и использовал PHP как модуль Apache, поэтому мне любопытно, есть ли у меня какие-либо причины использовать PHP в качестве двоичного файла CGI для будущей работы ...

Спасибо!

Когда PHP используется как модуль, он более или менее компилируется в сам код Apache. Он загружается для каждого запроса, что означает, что он загружается даже для изображений, скриптов, таблиц стилей и любых других файлов, кроме PHP. Это замедляет обслуживание этих страниц. С другой стороны, это ускоряет работу PHP, поскольку Apache не должен запускать дополнительные процессы.

Когда PHP используется как двоичный файл CGI, он более безопасен, но медленнее. Apache может запускать процессы под разными пользователями, что, например, может повысить безопасность среды общего хостинга. Это также увеличивает стабильность, потому что процессы PHP отделены от Apache, и в случае segfault или другого серьезного сбоя процессы PHP не повлияют на Apache. Использование PHP в качестве CGI означает, что вы не можете использовать .htaccess файл настроить PHP с помощью php_flag или php_value.

Вопрос в том, что для вас важнее. Скорость или безопасность.

Если вы ищете преимущества использования PHP в CGI или модулях в Google, я уверен, что вы найдете множество отличных статей, которые могут охватывать то, что я, возможно, пропустил.

Обычно у вас есть 3 варианта: - php как модуль веб-сервера (apache или iis) -> mod_php - cgi (старый стиль при каждом запуске двоичного файла) - fast-cgi (более оптимизированный двоичный файл)

Под fast-cgi мы подразумеваем fast-cgi apache без каких-либо прокси fpm и т. Д.

В обоих режимах CGI ваши сценарии HTTP-аутентификации не будут работать.

Fastcgi лучше, чем просто CGI - @ см. Gugl, но может произойти 500 ошибок.

По стабильности и производительности лучше mod_php.