Я запускал большинство моих PHP-приложений на своем веб-сайте на сервере fastcgi, обслуживаемом NGINX. У меня есть новое приложение, которое кажется довольно хорошо интегрированным с Apache; например, он сильно зависит от динамически записанных файлов .htaccess. Я работаю над тем, чтобы изменить его для работы с NGINX, но это еще не готово. В то же время я собирался иметь прокси-сервер NGINX для всех подключений к этому пути прямо к Apache и позволить Apache обрабатывать его.
Однако я использую VPS с ограниченным объемом памяти, и я бы предпочел не запускать один набор процессов PHP-CGI для NGINX (с собственным кешем APC) и другой для Apache (использующий больше памяти для их кэш APC). Кому-нибудь посчастливилось поделиться PHP между двумя?
mod_ fcgid не поддерживает использование уже работающих серверов, поэтому я попробовал mod_ fastcgi. Поначалу казалось, что это сработало, но занимало довольно много памяти (фиксировано - оно росло, а не только статично). Хуже того, я не смог заставить строку DirectoryIndex в моих конфигах apache работать с mod_fastcgi!
Я добавил
AddHandler php5-fastcgi .php
FastCgiExternalServer /var/www -host 127.0.0.1:9000
к моему конфигу Apache, и все .php страницы обрабатываются, но путь, подобный http://example.com/foo/, не сервер /foo/index.php! Если я удаляю FastCgiExternalServer, то он находит index.php, но, конечно, просто показывает его как текст.
Я предполагаю, что это потому, что DirectoryIndex обрабатывается после FastCgiExternalServer, но я понятия не имею, как это можно изменить.