我已经盯着它看了一小时,但还是没看到。我知道这会是一件很蠢的事,但我需要其他人的关注,因为我的眼睛没有注意到。
带有 Apache 的标准 Unbuntu Linode 盒。到目前为止,我已经配置了 2 个站点,但由于某种原因,第二个虚拟主机无法正常工作;第一个虚拟主机的站点反而会正常运行。
apache2.conf、httpd.conf 和 ports.conf 都是“标准”且未经编辑。
ports.conf 文件包含以下行:
NameVirtualHost *:80
Listen 80
这两个网站位于不同的配置文件中,它们已使用 a2ensite 链接到 enabled-sites 目录中。我已三重检查它们是否链接到正确的目录。这两个目录恰好都是 Wordpress 网站。我还确保 wordpress 配置正确并指向两个不同的数据库(并进一步确认,如果我禁用“第一个”网站,第二个网站就会开始显示)。
此时,我认为由于某种原因 VirtualHost 指令被忽略了,但我在语法上做了一些愚蠢的事情?我见过在 VirtualHost 指令中包含域名的语法示例,但这似乎已经过时了,并且更喜欢下面的 ServerName 语法(我尝试了另一种方法,但没有成功)。这是网站一:
<VirtualHost *:80>
ServerName imagethief.com
ServerAlias www.imagethief.com
DocumentRoot /var/www/imagethief.com/wordpress/
<Directory /var/www/imagethief.com/wordpress/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
ErrorLog /var/www/imagethief.com/log/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/www/imagethief.com/log/access.log combined
</VirtualHost>
第二:
<VirtualHost *:80>
ServerName nutritioneer.com
ServerAlias www.nutritioneer.com
DocumentRoot /var/www/nutritioneer/wordpress/
<Directory /var/www/nutritioneer/wordpress/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
ErrorLog /var/www/nutritioneer/log/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/www/nutritioneer/log/access.log combined
</VirtualHost>
我错过了什么?
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server imagethief.com (/etc/apache2/sites-enabled/imagethief.com:1)
port 80 namevhost imagethief.com (/etc/apache2/sites-enabled/imagethief.com:1)
port 80 namevhost nutritioneer.com (/etc/apache2/sites-enabled/nutritioneer.com:1)
Syntax OK
答案1
找到了。正如我所想的那样,它就在我眼前。
这不是一个配置错误,而是一个令人困惑的愚蠢错误;第二个域名不是 .com,而是 .net 域名,因此当 DNS 解析到正确的 IP 时,浏览器标头正在寻找一个不存在的站点,因此改为提供默认站点。