2014-01-31 102 views
3

在虛擬機上安裝Ubuntu。運行Apache並在不同的端口上需要2個虛擬主機,例如69和100.(在80上運行nginx和php-fpm + fastcgi)。 使用端口轉發到主機系統,從瀏覽器訪問像本地主機:69 /或本地主機:100/在Apache上配置兩個虛擬主機使用fastcgi

配置 的/ etc/apache2的/網站可用/默認:

<VirtualHost *:69> 
     ServerAdmin [email protected] 

     DocumentRoot /var/www 
... 
     <IfModule mod_fastcgi.c> 
      AddHandler php5-fcgi .php 
      Action php5-fcgi /php5-fcgi 
      Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi 
      FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization 
     </IfModule> 
</VirtualHost> 

<VirtualHost *:100> 
     ServerAdmin [email protected] 

     DocumentRoot /var/html 
... 
</VirtualHost> 

添加這些端口以及到/etc/apache2/ports.conf

PHP不適用於第二臺虛擬主機。如果我添加相同的<IfModule mod_fastcgi.c>指令,我會收到錯誤:

FastCgiExternalServer: redefinition of previously defined class "/usr/lib/cgi-bin/php5-fcgi"

什麼是正確的配置方式?

回答

2

你只能有其中之一。正如此人指出的: https://serverfault.com/questions/384715/fastcgi-error-with-apache2

嘗試將其添加到通用配置中,而不是在虛擬主機端。看起來你正在試圖按照nginx的方式配置apache虛擬主機。也許只是將其添加到apache.conf之前的行讀取sites_enabled

通常這將在啓用conf的文件中。

+1

好的,你只能有一個,但是我們怎樣才能爲每個VHOST指定一個不同的套接字文件? FastCgiExternalServer/usr/lib/cgi-bin/php5-fcgi -idle-timeout 300 -socket /var/run/php5-fpm-extra.sock -pass-header Authorization'包含您可以看到的套接字。 –