我已经使用Apache将一些站点配置为VirtualHosts,这些站点已经运行了一段时间。最近,我将服务器的主机名更改为所服务的域名之一,并将其添加到指向服务器的外部IP地址的/ etc / hosts中。
自从这样做以来,从笔记本电脑访问域会将我带到Apache的默认“有效!”。页。如果我从/ etc / apache2 / sites-enabled /中删除000-default,它将显示正确的站点。尝试使用“ www”访问该网站。前缀将我带到正确的站点,无论000-default是否在启用站点的站点中。
基于所有这些,我猜测默认配置将服务于默认页面,因为我是如何配置主机名或/ etc / hosts(或两者)的,但是我不知道如何在禁用该配置的同时保持这些设置不变。任何建议欢迎!
编辑-我当前的VirtualHost配置如下所示:
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
ServerAdmin me@domain.com
DocumentRoot /srv/www/domain
ErrorLog /srv/www/domain/logs/error.log
CustomLog /srv/www/domain/logs/access.log combined
</VirtualHost>
总结一下:我已经设置了几个VirtualHost,这是唯一不能正常工作的VirtualHost。我可以正常访问http://www.domain.com,但http://domain.com可以带我使用Apache的默认“有效!”。页。如果禁用000默认配置,则会显示正确的页面。这仅在我将服务器的主机名设置为domain.com并在/ etc / hosts中添加一行,将domain.com指向服务器的外部IP地址后才开始发生。如果可能的话,我想离开那些地方。
编辑:我跑了apache2ctl -S
因为/usr/sbin/apache2 -S
给了我“ apache2:错误的用户名$ {APACHE_RUN_USER}”。这是输出:
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server domain.com (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost domain.com (/etc/apache2/sites-enabled/000-default:1)
port 80 namevhost other.com (/etc/apache2/sites-enabled/other:1)
port 80 namevhost another.com (/etc/apache2/sites-enabled/another:1)
port 80 namevhost domain.com (/etc/apache2/sites-enabled/domain:1)
Syntax OK