2014-01-31 2 views
3

Наличие Ubuntu на виртуальной машине. Запуск Apache и наличие двух виртуальных хостов на разных портах, например. 69 и 100. (На 80 работает nginx с php-fpm + fastcgi). Использования переадресации портов для размещения системы, чтобы получить доступ из браузера, как локальный хост: 69/или локальные: 100/Настроить оба vhosts на Apache использовать fastcgi

Config /и т.д./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> 

Добавлено те порты, а также to /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

Попробуйте добавить его в общую конфигурацию, а не в сторону виртуального хоста. Похоже, вы пытаетесь настроить виртуальные хосты apache так, как вы это делали для nginx. Возможно, просто добавьте его в 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 Авторизация' содержит сокет, как вы можете видеть. –

Смежные вопросы