【发布时间】:2015-08-13 03:50:29
【问题描述】:
我在 Windows 8 上,刚刚在 C:/wamp 安装了 Wamp 2.5 (Apache 2.4.9) 以在本地测试我的代码。我在D:/workpace/project1 有我的源代码存储库,我使用 GIT 进行管理(GIT 是我不想打扰其位置的原因之一)。
安装 Wamp 后,我只是通过取消注释 httpd.conf 中的以下行来启用虚拟主机。
#Include conf/extra/httpd-vhosts.conf
然后我前往conf/extra/httpd-vhosts.conf 创建了它的备份并创建了虚拟主机。
<VirtualHost *:80>
ServerAdmin admin@example.com
DocumentRoot "D:/workspace/project1/"
ServerName project1
ServerAlias p1
ErrorLog "logs/project1(local)-error.log"
CustomLog "logs/project1(local)-access.log" common
<Directory "D:/workspace/project1/">
Require all granted
</Directory>
</VirtualHost>
还编辑了 hosts 文件并添加了必要的行。
127.0.0.1 project1
127.0.0.1 p1
问题是我收到403 Forbidden 错误不仅在我访问project1/ 和p1/ 时,而且在我访问localhost/ 时。
当我通过注释禁用 httpd.conf 中的 httpd-vhosts.conf 时,
Include conf/extra/httpd-vhosts.conf
我可以访问localhost/,但正如预期的那样,project1/ 和p1/ 也解析为localhost/。
令人惊讶的是,当我在httpd.conf 中重新启用httpd-vhosts.conf 并恢复原始(未更改)httpd-vhosts.conf 的备份时,即使在localhost/ 上我仍然得到403 (Forbidden)。但是当我再次禁用httpd-vhosts.conf 时,localhost/ 恢复正常。
更令人惊讶的是,如果我将DocumentRoot 更改为c:/wamp/www 中的一个虚拟文件夹,情况也是如此。所以这不仅仅发生在DocumentRoot 在c:/wamp/www 之外。
我觉得我有一些额外的东西可以启用,因为我不可能搞砸任何东西,因为这是一个全新的安装,除了上面的那些我没有做任何更改。
Apache 无法与虚拟主机相处的原因可能是什么?
【问题讨论】:
-
附注:为什么在本地使用虚拟主机?只需为每个项目创建一个
Alias就可以了。也不需要调整主机文件... -
对于虚拟主机问题本身:第一步总是是查看http服务器错误日志文件,尤其是在重启期间。那是服务器记录其配置问题的地方。在发出请求时还要监视该文件,您可能会发现有关问题的其他信息。您是否发现任何其他信息可能有助于解决您的问题?
-
@arkascha,奇怪!!! ...启用
httpd-vhosts.conf时,日志不会更新...project1(local)-error.log和project1(local)-access.log也没有创建。 -
啊,那么很可能名称解析不起作用,您的浏览器会尝试访问任何内容。首先使用 telnet 实用程序进行检查,最简单的方法是:
telnet project1 80- 会发生什么? -
@arkascha,我在哪里可以找到它...?我已经更新了
hosts文件...
标签: virtualhost wampserver apache2.4