我正在尝试为本地开发设置虚拟主机,但似乎无法使其工作。
我的 httpd.conf 中有这个:
NameVirtualHost *
<VirtualHost *>
ServerName localhost
DocumentRoot C:/Users/Elliot/dev/UniServer/www
</VirtualHost>
<VirtualHost *>
ServerName drupal.dev
DocumentRoot C:/Users/Elliot/dev/UniServer/www/drupal.dev/httpdocs
</VirtualHost>
在 C:\Windows\System32\drivers\etc\hosts 中有以下内容:
127.0.0.1 localhost
127.0.0.1 drupal.dev
http://localhost
解决 OK,http://drupal.dev/才不是。
欢迎任何想法...
编辑:我很确定我的主机文件是潜在的问题,并且任何编辑都会被忽略。
奇怪的是,我可以在不提升权限的情况下编辑、保存和删除它,而在 Windows >= Vista 上不应该出现这种情况。
正在研究‘什么原因导致 DNS 查找忽略 hosts 文件条目?’,‘HOSTS 文件被忽略’和‘Windows XP 中的 hosts 文件存在问题(作为新用户我无法发布链接)。
编辑:就我而言,停止 DNS 客户端服务可以解决问题......
编辑:...但只是非常简短。
答案1
对 drupal.dev 执行 ping 操作,确保它能解析到您的机器。此外,尝试将 documentRoot 设置为与上面的相同 (C:/Users/Elliot/dev/UniServer/www/),以防出现权限问题。
答案2
看这里的例子:
http://www.cyberciti.biz/faq/apache-name-based-virtualhost-example/
设置 NameVirtualHost 的 IP 地址,然后用限定名称(第一个为 localhost,第二个为 drupal.dev)替换每个 VirtualHost 的 *。
答案3
尝试将其放在与 hosts 文件drupal.dev
相同的行中,例如:localhost
127.0.0.1 localhost drupal.dev
答案4
这只是我如何让它与 Uniserver 协同工作的另一个例子。我的伪域是“memelpower.lc”,根域如下所示。
将C:\uniserver\core\apache2\conf\httpd.conf
其添加到文件末尾:
NameVirtualHost *
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "C:/uniserver/www/memelpower/public/"
ServerName memelpower.lc
ServerAlias memelpower.lc
ErrorLog "C:/uniserver/www/memelpower/public/error_log"
CustomLog "C:/uniserver/www/memelpower/public/access_log" common
</VirtualHost>
然后C:\Windows\System32\drivers\etc\hosts
在最后添加这一行:
127.0.0.1 localhost memelpower.lc
重新启动 Apache 就可以工作了。