我有一个 apache2 设置 (Ubuntu 16,Apache 2.4.18),其中定义了多个虚拟主机。每个虚拟主机在 /etc/apache2/sites-available 中都有自己的 .conf 文件,并带有指向 /etc/apache2/sites-enabled 的软链接。
除了一个虚拟主机外,其他所有虚拟主机都正常工作。我已三重检查是否ServerName
与域匹配(确实如此),但当我进入该域时,我最终进入了DocumentRoot
默认虚拟主机,我不知道为什么。我还删除并重写了整ServerName
行,以防有隐藏的控制字符。
我对一个正常工作的虚拟主机和一个不工作的虚拟主机进行了比较,唯一的区别是DocumentRoot
和ServerName
。
我已经检查过没有其他具有相同域名的虚拟主机(唯一的另一个是 SSL 虚拟主机)
还有什么我可以寻找的来帮助解决这个问题吗?
编辑:根据要求,VH 文件(为简洁起见,域名/文件夹被隐藏,并且注释被删除)
<VirtualHost *:80>
ServerName MYDOMAIN.COM
ServerAdmin [email protected]
DocumentRoot /var/www/MYDOMAIN.COM
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
编辑 2:我删除了默认 VH 并重新启动,然后问题 VH 工作正常。我重新添加了默认 VH 并重新启动,问题 VH 继续正常工作了大约 20 秒,然后又恢复到相同的问题。
答案1
据我所知,问题发生是因为该域名列在 /etc/hosts 文件中,并在 /etc/hostname 中设置。从那里删除它似乎可以解决问题。