У меня Apache2-Prefork работает с использованием mod_php и php 5.2.
И у меня также есть php-fpm с php 5.3, работающим внутри chrooted-среды (прослушивание сокета unix, который будет доступен для apache)
Может кто-нибудь посоветовать мне, как мне настроить виртуальный хост для использования Fastcgi. (Я искал в Интернете пример, но ничего не нашел ...)
И есть момент, который меня смущает ...
если php встречается с включением или fopen, в каком контексте это будет выполнено? Апачи или chrooted окружение? Могу ли я передавать директивы php через httpd.conf и .htaccess?
Вся эта штука с FastCGI до сих пор меня сбивает с толку :) Заранее благодарим за любую помощь!
Обновление: я почти уверен, что мне нужно использовать mod_fastcgi и директиву FastCgiExternalServer. Но я не знаю, как сказать apache, что он может делать это только с файлами .php
В директиве виртуального хоста Apache вы настраиваете обработчик php5,
AddHandler fcgid-script .php
FCGIWrapper /usr/lib/cgi-bin/php5 .php
Options ExecCGI
В этом случае запись FCGIWrapper - это двоичный файл php5 cgi. В других примерах предлагается создать свой собственный сценарий и вызвать его, задав для этого сценария параметры и, в свою очередь, вызывая php.
Например,
FCGIWrapper /usr/local/bin/php .php
Если вы используете сценарий оболочки, вы можете установить параметры в нем, если вы этого не сделаете (т.е. первый пример), вы можете установить параметры непосредственно в файлах конфигурации Apache,
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
FcgidConnectTimeout 20
FcgidIOTimeout 60
FcgidMaxRequestsPerProcess 400
FcgidIdleTimeout 60
FcgidMinProcessesPerClass 0
</IfModule>
Это почти все для базовой конфигурации FastCGI, некоторые из них зависят от дистрибутива или от того, скомпилированы ли она самостоятельно, но приведенное выше - это основные необходимые вещи.
Похоже, здесь есть довольно обширный FAQ по чему-то очень похожему на ваш запрос,
Apache + Chroot + FastCGI + PHP FAQ - http://www.seaoffire.net/fcgi-faq.html
Я писал об этом в своем блоге некоторое время назад, с полными примерами и всем остальным. Вот часть о Apache + PHP FPM: http://blog.foaa.de/2010/11/php-apache-and-fastcgi-a-comprehensive-overview/#implementation.
Если вы прокрутите вверх, он также охватывает множество других (в основном устаревших) способов реализации Apache + FastCGI. По крайней мере, это может дать вам более глубокое понимание того, как FastCGI и Apache могут взаимодействовать.