Я вижу, что большинство ответов считают, что mod_php менее эффективен, потому что объем памяти будет больше из-за обслуживания статических файлов, таких как этот.
Но у меня другое мнение, а именно следующее:
На самом деле разделы кода совместно используются процессами fork()ed, поэтому предикат объема памяти не должен выполняться.
Единственная причина, по которой я могу думать, заключается в том, что mod_php не является потокобезопасным, поэтому веб-сервер может создавать подпроцессы только для каждого запроса.
В то время как в режиме fastcgi веб-сервер может повысить производительность за счет трюков с мультиплексированием, тем самым уменьшая fork() накладные расходы.
Одним словом, недостатком mod_php является не его объем памяти, а накладные расходы fork(), но если mod_php может быть потокобезопасным, fork() не понадобится, и это будет наиболее эффективное решение для обслуживания запросов.
Вышесказанное является моим мнением, но не уверенным на 100%.
Это правильно?
Ответ 1 · рейтинг 2 · Evert
Разветвление происходит довольно быстро, и установки apache + mod_php по умолчанию также разветвляются. (если не используется рабочий mpm).
Настоящая причина (отчасти) в следующем:
Стандартный mod_php будет иметь достаточно большой процесс, потому что процесс содержит как php, так и все остальные модули apache и т. д. Если php находится в отдельном процессе, процесс php может иметь более короткое время жизни и быстро передать результат обратно в apache, когда PHP будет выполнен.
Другая причина (как вы упомянули) заключается в том, что PHP не затрагивается для запросов, отличных от php.
Тот факт, что вы можете переключиться на рабочий mpm при использовании FastCGI, является просто бонусом; но повышает эффективность.
В общем, с этими типами проектов вы всегда должны стараться сделать как процессы apache, так и php как можно более недолговечными, и их разделение помогает.
Но да... вилки очень быстрые, и в некоторых проектах они могут работать лучше, чем потоки в Linux (без источника, я просто помню, как читал это). Я считаю, что для систем типа веб-сервера системы на основе шаблона Reactor работают даже лучше. NGinx и Varnish - яркие тому примеры.