我在本地 Windows 7 x64 计算机上安装了 Apache Web 服务器。它没有全局 DNS 名称。
在默认分布中,它在 Apache/conf/extra/httpd-vhosts.conf 文件中配置了虚拟主机。
它有一个指令
NameVirtualHost *:80
和多个指令
<VirtualHost *:80>
与不同的
ServerName www.domain.tld
文件中写了不同的名称hosts
并且都指向127.0.0.1
。
不幸的是,虚拟主机不起作用。只有第一个<VirtualHost>
标签似乎处于活动状态。httpd.exe
启动时和 中没有显示任何内容error.log
。
如何使虚拟主机在这里工作?
编辑
我看不出为什么需要 DNS。GET
请求包含站点的符号名称,因此,服务器拥有所有信息来区分调用了哪个虚拟主机。
编辑1
我发现虚拟主机确实可以工作(没有 DNS!)。这是某台特定主机的问题。
答案1
虚拟主机在以下文件中配置:extra/httpd-vhosts.conf
以下是如何配置虚拟主机的示例
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/sites/website"
<Directory "/var/sites/website">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ServerName www.website.com
#ServerAlias www1.website.com
ErrorLog "logs/error_log"
CustomLog "logs/access_log" common
</VirtualHost>
记得 :
在您的 DNS 管理器上配置您的常规名称和别名,并记得将此文件包含在 httpd.conf 主指令中。
包括 conf/extra/httpd-vhosts.conf