【发布时间】:2016-05-02 07:32:48
【问题描述】:
我正在尝试用 Apache 2.4 中的虚拟主机做一些简单的事情(使用 Wampserver 2.5)
我希望能够拥有多个虚拟主机并通过以下方式访问它们:
- www.project1.dev
- www.project2.dev
所以我通过阅读official guide 在httpd.conf 中进行了以下配置:
NameVirtualHost \*:80
#
# Project 1
#
<VirtualHost *:80>
DocumentRoot "C:/wamp/www/myProject1/"
ServerName www.project1.dev
ErrorLog "logs/project1-error_log "
CustomLog "logs/project1-access_log" common
<Directory "C:/wamp/www/myProject1/">
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
#
# Project 2
#
<VirtualHost *:80>
DocumentRoot "C:/wamp/www/myProject2/"
ServerName www.project2.dev
ErrorLog "logs/project2-error_log "
CustomLog "logs/project2-access_log" common
<Directory "C:/wamp/www/myProject2/">
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
我还将它们添加到我的 hosts 文件中
127.0.0.1 http://project1.dev
127.0.0.1 http://project2.dev
但是当我在重启 wamp 服务后进行测试时,http://project1.dev 和 http://project2.dev 都指向 C:/wamp/www/myProject1/
与project2.dev 相关的第二条路径C:/wamp/www/myProject2/ 似乎被忽略了。
我错过了什么吗?
谢谢。
【问题讨论】:
-
*:80。不,您需要指定 主机。 -
每次发布新版本的 Apache 时,您如何处理虚拟主机都会不断变化。我预计它会在一周左右再次改变。您需要阅读当前版本的文档并严格遵守。您不能使用较旧或较新的文档,因为它的格式不正确。
-
\*:80?尝试消除\。您在NVH指令中添加的内容必须与<VirtualHost>行完全匹配... -
@kainaw 我有 Apache 2.4.9,我读过的文档是我猜的好文档:httpd.apache.org/docs/2.4/vhosts/name-based.html
-
@MarcB 根据文档,
\*是指定所有 IP 地址的通配符。
标签: php apache wamp virtualhost httpd.conf