【发布时间】:2019-04-17 05:40:38
【问题描述】:
我在 Debian 9 上设置了一个新服务器,但这次我遇到了虚拟主机问题。
基本上,虚拟主机永远不会到达它们的 DocumentRoot,而是回退到默认的 DocumentRoot (/var/www/html)。由于这通常是找到正确配置的简单问题,所以这次我没有让它发挥作用。
为了解决这个问题,我将 conf 文件缩减到了最低限度。让我们以 2 个 vhosts conf 为例:
<VirtualHost 127.0.0.1:80>
ServerName www.site1.com
ServerAlias www.site1.com
ServerAdmin contact@test.com
DocumentRoot /var/www/site1
</VirtualHost>
<VirtualHost 127.0.0.1:80>
ServerName www.site2.com
ServerAlias www.site2.com
ServerAdmin contact@test.com
DocumentRoot /var/www/site2
</VirtualHost>
在这种情况下,在www.site1.com 或www.site2.com 上继续前进将落入/var/www/html 上的默认页面。
如果我将120.0.0.1:80 之一更改为*:80,它会立即设置为工作虚拟主机。但如果我将两者都设置为*:80,它将落在列表的第一位。
如果我有这个意思:
<VirtualHost 127.0.0.1:80>
ServerName www.site1.com
ServerAlias www.site1.com
ServerAdmin contact@test.com
DocumentRoot /var/www/site1
</VirtualHost>
<VirtualHost *:80>
ServerName www.site2.com
ServerAlias www.site2.com
ServerAdmin contact@test.com
DocumentRoot /var/www/site2
</VirtualHost>
www.site1.com 和 www.site2.com 将导致 /var/www/site2。反之亦然。
但如果我这样做:
<VirtualHost *:80>
ServerName www.site1.com
ServerAlias www.site1.com
ServerAdmin contact@test.com
DocumentRoot /var/www/site1
</VirtualHost>
<VirtualHost *:80>
ServerName www.site2.com
ServerAlias www.site2.com
ServerAdmin contact@test.com
DocumentRoot /var/www/site2
</VirtualHost>
然后www.site1.com 和www.site2.com 将落在www.site1.com。
我三次检查了我的apache.conf、ports.conf。全新安装后,它们都处于默认设置。
已尝试并检查了“已解决”类似帖子的所有常见答案:
apachectl -t 返回 Syntax OK。
所有 conf 文件都以.conf 结尾。
chmod 已设置为各种尝试,包括 755、775 和 777。
匹配的用户也在目录上设置。
我试图 sudo 一切,重新启动,重新加载等。
我确实重新启动了服务器。
我已将日志设置为调试,但我找不到其中的所有错误(虽然我不确定要查找什么)。
以防万一,这是我的/etc/hosts:
127.0.0.1 localhost
127.0.1.1 sd-*****.dedibox.fr sd-****
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
和主机名:
sd-*****
我真的不知道现在发生了什么。感谢您的任何提示。
【问题讨论】:
标签: debian apache2 virtualhost