单个fastcgi / php-cgi服务器用于多个虚拟主机?

我目前正在为使用以下设置的客户端托pipe网站:

  • Apache 2.2.16
  • mod_fastcgi 2.4.7
  • PHP 5.3.3

Apache使用worker MPM并通过dynamic的FastCGIconfiguration服务PHP:

 FastCgiSuexec / usr / sbin / suexec
 FastCgiConfig -singleThreshold 0 -pass-header授权-idle-timeout 3600
 SuexecUserGroup用户组
 Action application / x-httpd-fastphp /cgi-bin/php.fcgi
 AddType应用程序/ x-httpd-fastphp .php

这个效果很好,但是这为每个VirtualHost创build了一个php-cgi实例(即使cgi-bin目录对于一个给定的帐户在物理上是相同的),所以如果一个客户端有几个子域名,它开始累加起来,挨饿服务器和垃圾它。

所以这带我到实际的问题,是否有可能通过一个单一的PHP的CGI实例服务于一个帐户的所有PHP请求? 优选地,保持suexec位以防止客户端读取其目录之外的文件。

如果我可以添加个人意见

使用Nginx,它更快,更简单,更容易做你想做的事情(并使用更less的内存)

它是我的个人喜好..:D

https://calomel.org/nginx.html是一个很好的详细例子

你有每个虚拟主机的fcgidconfiguration吗? (除了全局fcgidconfiguration),也就是在标签内?

我只是认为这可能是问题的一个可能的原因,这可以通过添加fcgidconfiguration文件系统path,这是所有的networking帐户,这是像这样(例如在/ etc / apache2 / sites-enabled / 000-default,如果使用Ubuntu):

NameVirtualHost SOME-IP-ADDRESS:80 <Directory /some-path/webaccounts/> AddHandler fcgid-script .php FCGIWrapper /usr/lib/cgi-bin/php5 .php </Directory> <VirtualHost SOME-IP-ADDRESS:80> ... 

至less我们在2Gb RAM机器(Ubuntu 8.04)上使用fcgid和20-30个虚拟主机,没有任何问题。