apache2多个虚拟主机,但只有第一个工作

时间:2015-11-05 07:38:17

标签: php apache symfony ubuntu

我在Ubuntu上运行Apache / 2.4.12,并在/ etc / apache2 / sites-available /文件夹中添加了2个.conf文件,并启用了它们。两个站点都使用相同的Symfony PHP文件。

aaa.conf

Listen 8080
<VirtualHost *:8080>


    ServerName local.aaa.com
    ServerAlias www.local.aaa.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/aaa/web
    <Directory "/var/www/html/aaa/web">
           AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/aaa_error.log
    CustomLog ${APACHE_LOG_DIR}/aaa_access.log combined

</VirtualHost>

bbb.conf

Listen 8081
<VirtualHost *:8081>


    ServerName local.bbb.com
    ServerAlias www.local.bbb.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/bbb/web
    <Directory "/var/www/html/bbb/web">
           AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/bbb_error.log
    CustomLog ${APACHE_LOG_DIR}/bbb_access.log combined

</VirtualHost>

我遇到的问题是,只有service apache2 reload我打开的第一个网站才能运行。例如:

第一种情况
  - 我正在重新加载
  - 我打开local.aaa.com:8080它的工作原理   - 我打开local.bbb.com:8081它没有用,我得到PHP Fatal error: Class 'AppBundle\\AppBundle' not found

第二种情况
  - 我正在重新加载
  - 我打开local.bbb.com:8081它的工作原理   - 我打开local.aaa.com:8080它没有用,我得到PHP Fatal error: Class 'AppBundle\\AppBundle' not found

修改
@Ryan Vincent: netstat -a显示两个网站runnnig

1 个答案:

答案 0 :(得分:0)

所有的Listen指令都应该在Ubuntu提供的主apache配置文件中(/etc/apache2/apache2.conf)。

启用网站的文件夹必须只包含使用a2ensite生成的适当的符号链接到可用的网站,这是您必须放置虚拟主机配置的地方。

将它们移动到那里后,启用每个虚拟主机并重新加载apache。

sudo a2ensite aaa.conf
sudo a2ensite bbb.conf
sudo service apache2 reload