gpt4 book ai didi

php - apache2 多个虚拟主机,但只有第一个有效

转载 作者:可可西里 更新时间:2023-10-31 23:46:38 28 4
gpt4 key购买 nike

我在 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 :找不到类 'AppBundle\\AppBundle'

第二种情况
- 我重新加载
- 我打开 local.bbb.com:8081 它有效
- 我打开 local.aaa.com:8080 它不起作用,我收到 PHP fatal error :找不到类 'AppBundle\\AppBundle'

编辑
@瑞安文森特:netstat -a 显示两个站点都在运行

最佳答案

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

sites-enabled 文件夹必须只包含使用 a2ensite 生成的正确符号链接(symbolic link)到 sites-available,这是您必须放置虚拟主机配置的地方。

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

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

关于php - apache2 多个虚拟主机,但只有第一个有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33538964/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com