我要在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-*****
我真的不知道现在发生了什么。感谢您的提示。
答案 0 :(得分:0)
好的,出于某些奇怪的原因,我设法使其与第二种方案一起使用,将每个虚拟主机都设置为*:80
。
尽管可以,但是我不知道为什么这次我的常规设置不起作用,也不清楚如何使它起作用。