我在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.aa.com:8080它工作
-我打开local.bbb.com:8081它不起作用,我得到了一个PHP Fatal error: Class 'AppBundle''AppBundle' not found
第二种情况
-我重新加载
-我打开local.bbb.com:8081它工作
-我打开local.aa.com.8080它不起作用,我得到了一个PHP Fatal error: Class 'AppBundle''AppBundle' not found
编辑
@Ryan Vincent:netstat -a
显示两个站点都在运行
所有的Listen指令都应该在Ubuntu提供的主apache配置文件(/etc/apache2/apache2.conf)中
启用了站点的文件夹必须只包含使用a2ensite生成的到可用站点的正确符号链接,这是您必须放置虚拟主机配置的位置。
将它们移到那里后,启用每个虚拟主机并重新加载apache。
sudo a2ensite aaa.conf
sudo a2ensite bbb.conf
sudo service apache2 reload
我也遇到了同样的问题。
它已经通过在我的防火墙(UFW)上添加一个规则来解决。我使用的端口是18180和18181。18180年港口的连接还可以,但18181年就不行了。我尝试了禁用UFW,但它不起作用,所以我决定添加规则"允许18181/tcp";以及";允许18181/udp";并且问题得到了解决。奇怪的是,它不适用于禁用UFW,但它就像lol
我希望这将有助于