Я просто настраиваю свой сервер с Apache, FastCGI и PHP-FPM. Мой вопрос касается папки / cgi-bin /: действительно ли необходимо иметь оболочку / cgi-bin / php-fpm для каждого отдельного виртуального хоста, который запускает apache с использованием другого пользователя / группы? Более того, если пользователь удаляет папку cgi-bin ... преимущества fpm / fastcgi теряются. В идеале я бы хотел настроить PHP-FPM без необходимости чего-либо, кроме файла .conf.
Насколько я могу судить, двоичный файл php-cgi (это все, что выполняет оболочка php-fpm) исполняется всеми пользователями в системе ... так зачем же обертывать тот же исполняемый файл, который будет запускаться пользователь все равно? В частности, как я могу изменить эту конфигурацию, чтобы использовать двоичный файл php-cgi напрямую, вместо того, чтобы проходить через оболочку?
Соответствующие файлы / результаты, связанные с моим вопросом:
/etc/apache2/modules.d/20_mod_fpm.conf --------------------------------------------------------------------------------- ... FastCgiExternalServer /var/www/localhost/cgi-bin/php-fpm -host 127.0.0.1:9000 AddHandler php-fpm .php Action php-fpm /cgi-bin/php-fpm DirectoryIndex index.php ...
/ var / www / localhost / cgi-bin / php-fpm --------------------------------------------------------------------------------- #!/usr/bin/php-cgi
phpinfo () --------------------------------------------------------------------------------- ... Server API: FPM/FastCGI ...
Прекрасно. Выполнение тестов сообщает, что установка действительно работает очень хорошо: с ~ 135 запросами в секунду, а не с 13 запросами в секунду с использованием настройки интерпретатора Apache / PHP по умолчанию. Так что все, что осталось, - это сделать многопользовательский аспект безупречным.
Например, на машинах Redhat / centos php-fpm фактически является двоичным файлом в каталоге / usr / sbin /. Он перехватывает вызов с сервера (apache / nginx) для обработки запросов php. Настройки php-fpm можно изменить в php-fpm.conf (http://php-fpm.org/wiki/Configuration_File), который позволяет точно настроить вашу систему. php-fpm довольно продвинутый и дает вам большой контроль над вашей системой.
Почему-то файл php-fpm в вашей системе больше похож на обычную оболочку fastcgi / cgi. Если вы хотите обойтись без использования «вашей версии php-fpm» и напрямую использовать php-cgi, вы можете использовать настраиваемую оболочку fastcgi. Пример пользовательской оболочки fastcgi:
#!/bin/bash
### Set PATH ###
PHP_CGI=/usr/bin/php-cgi
PHP_FCGI_MAX_REQUESTS=1000
export PHP_FCGI_MAX_REQUESTS
exec $PHP_CGI
Одна из опций, которые можно установить в php-fpm.conf, - это позволить вам выполнять скрипты php от имени другого пользователя. Suexec также предоставляет эту функцию, и ее может вызвать Apache для передачи запроса в оболочку fastcgi, которая будет обрабатывать файлы php. Вместе suexec + fastcgi обеспечивают некоторые ключевые функции php-fpm и, следовательно, могут использоваться в качестве альтернативы.
Использование оболочки позволяет при желании выполнить дополнительную настройку, такую как установка переменных среды, выбор файла php.ini и т. Д.