0

mod_php против CGI против FastCGI: что выбрать для производительности?

9

Я пытаюсь разобраться в точном значении и цели загрузки PHP в качестве модуля Apache по сравнению с другими способами его использования.

Когда PHP устанавливается в качестве модуля Apache, что именно происходит? Например, происходит ли чтение файла php.ini каждый раз, когда приходит запрос на PHP, или это происходит только при загрузке самого модуля PHP?

3 ответ(ов)

0

При использовании модуля Apache файл php.ini читается в момент загрузки модуля. В случае с PHP CGI используется исполняемый интерпретатор PHP, как и в любом другом шелл-скрипте. Поскольку при каждом вызове не сохраняется состояние, конфигурационный файл нужно считывать каждый раз, когда запускается CGI.

0

Файл php.ini загружается, когда модуль PHP инициализируется, как в случае с mod_php, так и с FastCGI и FPM. В обычном режиме CGI конфигурационный файл считывается во время выполнения, потому что в этом случае нет предварительно запущенных процессов.

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

0

Этот ссылка может быть полезной: http://2bits.com/articles/apache-fcgid-acceptable-performance-and-better-resource-utilization.html

Заключение

Если вам важна исключительно скорость, то лучше остаться на mod_php.

Однако, если вы стремитесь к более эффективному использованию ресурсов и повышению производительности, рассмотрите возможность перехода на fcgid.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь