Назад | Перейти на главную страницу

Apache2-Prefork и FastCGI

У меня 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 могут взаимодействовать.