Joh*_*ebs 10 virtualhost apache-2.2
我有一些使用 Apache 配置为 VirtualHosts 的站点,它们已经运行了一段时间。我最近将服务器的主机名更改为正在提供服务的域名之一,并将其添加到 /etc/hosts 指向服务器的外部 IP 地址。
由于我这样做了,从我的笔记本电脑访问域将我带到 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>
Run Code Online (Sandbox Code Playgroud)
总结一下:我设置了几个 VirtualHost,这是唯一一个不能正常工作的。我可以很好地访问http://www.domain.com,但是http://domain.com将我带到 Apache 的默认“它有效!” 页。如果我禁用 000-default 配置,它会显示正确的页面。这仅在我将服务器的主机名设置为 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
Run Code Online (Sandbox Code Playgroud)
kar*_*ore 13
前几天丢了这个问题。
当您有一个没有 ServerName 组件的 <VirtualHost> 容器时,它将使用默认主机名。由于 000-default 可能没有 ServerName 组件,并且是按字母顺序包含的第一个组件,这就是为什么它回答 hostname.com 并且不允许您明确声明的主机名工作。
归档时间: |
|
查看次数: |
32733 次 |
最近记录: |