Я хотел спросить вас о методах настройки PHP / Apache, которые вы знаете, их плюсах и минусах. Я начну сам
---------------- PHP как модуль Apache ----------------
Плюсы : хорошая скорость, так как вам не нужно каждый раз запускать exe, особенно в режиме mpm-worker . В этом режиме вы также можете использовать различные ускорители PHP, такие как APC или eAccelerator.
Минусы : если вы запускаете apache в режиме mpm-worker, вы можете столкнуться с проблемами стабильности, потому что каждый сбой в любом php-скрипте приведет к нестабильности всего пула потоков этого процесса apache. Также в этом режиме все скрипты выполняются от имени пользователя apache. Это плохо для безопасности. Для конфигурации mpm-worker требуется PHP, скомпилированный в поточно-безопасном режиме. По крайней мере, репозитории CentOS и RedHat по умолчанию не имеют поточно-ориентированной версии PHP, поэтому в этих ОС вам необходимо самостоятельно скомпилировать хотя бы PHP (есть способ активировать рабочий mpm на Apache). Использование потоковых бинарных файлов PHP считается экспериментальным и нестабильным. Кроме того, многие расширения PHP не поддерживают многопоточный режим или не были хорошо протестированы в поточно-безопасном режиме.
---------------- PHP как CGI ----------------
Похоже, что это самая медленная конфигурация по умолчанию, которая сама по себе является "против";)
---------------- PHP как CGI через mod_suphp ----------------
Плюсы : suphp позволяет выполнять php scipts от имени владельца файла скрипта. Таким образом, вы можете безопасно разделять разные сайты на одном компьютере. Также suphp позволяет использовать разные файлы php.ini для каждого виртуального хоста.
Минусы : PHP в режиме CGI означает меньшую производительность. В этом режиме вы не можете использовать php-ускорители, такие как APC, потому что каждый раз, когда новый процесс создается для обработки скрипта, делает кэш предыдущего процесса бесполезным. Кстати, вы знаете способ применения ускорителя в этой конфигурации? Я слышал кое-что об использовании shm для кэширования байт-кода php. Кроме того, вы не можете настроить PHP через .htaccess файлы в этом режиме. Для этого вам нужно будет установить P ECL htscanner, если вам нужно установить различные параметры для каждого скрипта через .htaccess (директивы php_value / php_flag)
---------------- PHP как CGI через suexec ----------------
Эта конфигурация выглядит так же, как и в suphp, но я слышал, что она медленнее и менее безопасна. Практически такие же плюсы и минусы применяются.
---------------- PHP как FastCGI ----------------
Плюсы : стандарт FastCGI позволяет одному php-процессу обрабатывать несколько сценариев до того, как php-процесс будет убит. Таким образом вы получаете производительность, так как нет необходимости ускорять новый процесс php для каждого скрипта. Вы также можете использовать PHP-ускорители в этой конфигурации (см. Раздел «Минусы» для комментариев). Кроме того, FCGI, почти как suphp, также позволяет выполнять процессы php от имени какого-либо пользователя. mod_fcgid, похоже, имеет наиболее полную поддержку fcgi и гибкость для apache.
Минусы : использование php-ускорителя в режиме fastcgi приведет к высокому потреблению памяти, поскольку каждый процесс PHP будет иметь свой собственный кэш байт-кода (если только не существует какого-либо ускорителя, который может использовать разделяемую память для кеширования байт-кода. Есть ли такой?). FastCGI также немного сложен в настройке. Вам необходимо создать различные файлы конфигурации и внести некоторые изменения в конфигурацию.
Кажется, что fastcgi - это самая стабильная, безопасная, быстрая и гибкая конфигурация PHP, однако ее немного сложно настроить. Но, может быть, я что-то пропустил?
Комментарии приветствуются!