【发布时间】:2015-11-05 07:38:17
【问题描述】:
我在 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
编辑
@瑞安文森特:
netstat -a 显示两个站点都在运行
【问题讨论】:
-
如果您运行的是单独的主机名,为什么还需要单独的端口?
-
这是一个更大项目的一部分,我需要遵循这个配置
-
如果您在哪里为两者使用相同的端口,它是否有效?另外,您是说在每次 apache 重新加载后,交替主机开始工作吗? eit,也许有第三个(默认)虚拟主机接管?
-
将它们更改为相同的端口是在做同样的事情。是的,每次重新加载后,我打开的只有第一个有效,第二个不管这两个中的哪一个产生该错误
-
愚蠢的问题,您是否启用了两个虚拟主机? (a2ensite)