如何使我的 Apache 虚拟主机正常工作?

如何使我的 Apache 虚拟主机正常工作?

我正在尝试为本地开发设置虚拟主机,但似乎无法使其工作。

我的 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 就可以工作了。

相关内容