从未使用过的 Apache 虚拟主机目录

Apache vhost directory never used

我在 Debian 9 上设置了一个新服务器,但这次我遇到了虚拟主机问题。

基本上,虚拟主机永远不会到达它们的 DocumentRoot,而是退回到默认的 DocumentRoot (/var/www/html)。因为这通常是找到正确配置的简单问题,所以这次我没有让它工作。

我将 conf 文件减少到最低限度以解决该问题。让我们以 2 个虚拟主机 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.comwww.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.comwww.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.comwww.site2.com会落在www.site1.com上。

我检查了我的 apache.confports.conf 三重。它们都是全新安装后的默认设置。

"solved" 类似帖子上的所有常见答案均已尝试并检查: apachectl -treturns一个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-*****

真不知道现在怎么样了。感谢您的任何提示。

好吧,出于一些奇怪的原因,我设法让它与第二个方案一起工作,将每个虚拟主机作为 *:80

虽然它有效,但我不知道为什么这次我通常的设置不起作用,也不知道我做了什么让它起作用…