使用ProxyPassMatch复制mod_fastcgi(PHP-FPM设置)

我想从Apache 2.2移动到Apache 2.4,但是没有mod_fastcgi ,推荐的升级path是mod_proxy_fcgi

但是我不知道如何完成以下内容:

 <IfModule mod_fastcgi.c> Alias /php5.fcgi /usr/local/www/fastcgi/php5.fcgi FastCGIExternalServer /usr/local/www/fastcgi/php5.fcgi -flush -host 127.0.0.1:9000 AddType application/x-httpd-fastphp5 .php Action application/x-httpd-fastphp5 /php5.fcgi <Directory "/usr/local/www/fastcgi/"> Order deny,allow Deny from all <Files "php5.fcgi"> Order allow,deny Allow from all </Files> </Directory> </IfModule> 

这允许所有的虚拟主机和所有需要PHP使用一个PHP-FPM进程,新的ProxyPassMatch要求我为每个虚拟主机设置一个单独的条目,这是耗时且容易出错的…

 ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/path/to/vhost/$1 

现在我已经恢复到了Apache 2.2,但我很想find解决这个问题的方法。

你可以使用服务器variables来实现你想要的:这个问题的答案可能会帮助你:

0-IS-未取代按服务器名称时使用的与-阿帕奇-proxypassmatch

首先,你需要清楚你是否要为每个域分开不同的进程池。 如果这样做,则需要将域映射到每个池的单独fastgi端口。

build议的configuration方法,或类似的东西是必要的,如果你要为每个域的PHP进程池。 如果您不这样做,那么您的所有域都必须使用相同的用户标识进行运行,这样,如果这些用户标识是独立的托pipe客户端,那么这些标识就会相互暴露。 如果他们都是你自己的东西,并没有太多的保护,那么也许你不在乎那么多。 例如,如果你只是停放域名,那么用户每域可能是一个愚蠢的资源浪费。

如果您承载了许多人的网站,那么我认为是负责任的,您应该转向拥有每个用户的进程池。 我并不是说这只是一个简单的过渡,而且是的,还有资源问题,虽然configurationpipe理部分应该是相对容易的。 您将需要某种脚本的系统来生成configuration。 我select这种东西的工具是木偶,但是有很多select。

不pipe你是否接受这个build议,你首先要做出这个决定,然后重新提出你关于如何完成你想要的机制的问题。