我已经尝试了几十个指南并阅读了大量信息,但我仍然无法找到解决问题的方法。我已经卸载,重新安装和检查,并仔细检查了每个可能的问题。
问题仍然存在。无论我做了什么改变,文档根总是显示为c:\ wamp \ www。
即使我将httpd.conf DocumentRoot更改为另一个路径,它仍会显示为c:\ wamp \ www
奇怪的是,如果vhost设置错误,我的index.php不应该显示。但事实上确实如此。我有一行代码来回显$_SERVER['DOCUMENT_ROOT']
,它总是显示为c:\ wamp \ www,而不是我已分配的任何vhosts文档根目录。
所以页面加载,当然有错误。我的网页全部引用$_SERVER['DOCUMENT_ROOT']
,所有内容都在我的实际网站上完美运行。
所以最重要的是我已经向后和向前检查了我的配置。 / vs,hosts文件是正确的,文档根路径是正确的,并指向包含正确文件的实际文件夹。我玩过每个“标准”和非标准配置的可能性。
必须有一些其他因素可以防止这种情况发生。如果可以,请帮忙。
请不要建议我尝试其他配置。我试过了所有这些。
请告诉我你知道为什么会这样,以及如何解决它。我在脚本上几乎完成了这个技巧,但感觉只是缺少修复。我给海报留了一条信息,没有收到他的回复。
我希望有人在这里有一个修复,而不是建议尝试另一个配置。除非您知道该问题并进行修复,否则请不要回复。这可能听起来很粗鲁,但我已经看到并试过了所有的配置。
NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>
DocumentRoot C:\wamp\www\itsaboutwirelessnetworks
ServerName itsaboutwirelessnetworks.localhost
ServerAlias itsaboutwirelessnetworks
</VirtualHost>
<VirtualHost 127.0.0.1:80>
DocumentRoot C:\wamp\www\computerstore
ServerName computerstore.localhost
ServerAlias computerstore
</VirtualHost>
<VirtualHost 127.0.0.1:80>
DocumentRoot C:\wamp\www
ServerName localhost
ServerAlias localhost
</VirtualHost>
是配置。为什么我不能在评论中用回车编辑?
答案 0 :(得分:6)
在C:\Windows\System32\drivers\etc\hosts
中添加以下行:
127.0.0.1 computerstore.local
在httpd.conf
中,请确保取消注释此行:
Include "conf/extra/httpd-vhosts.conf"
(这应该指向你的vhosts文件的位置)
您的httpd-vhosts.conf
文件应包含以下内容:
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot C:\wamp\www
ServerName 127.0.0.1
ServerAlias localhost
SetEnv APPLICATION_ENV development
SetEnv APPLICATION_DOMAIN localhost
</VirtualHost>
<VirtualHost *:80>
DocumentRoot C:\wamp\www\conputerstore
ServerName computerstore.local
ServerAlias computerstore.local
SetEnv APPLICATION_ENV development
SetEnv APPLICATION_DOMAIN computerstore.local
</VirtualHost>
如果WAMP拒绝加载vhosts文件,请将vhosts配置移到httpd.conf
的末尾。
这应该启用基于名称的配置而不是基于IP的配置。如果您没有这样设置,Apache将解析您的网站&#39;通过IP路径,并且由于您指定了与所有虚拟主机相同的单个IP,因此最后一个IP优先于先前的虚拟主机。你上一个vhost的docroot是C:\wamp\www
- 让你描述的行为绝对正常。
<强>更新强>
由于为域名C:\wamp\www\computerstore
指定了文档根computerstore.local
,请记得在浏览器中转到http://computerstore.local
。如果您尝试http://localhost/computerstore
,域名将被解析为localhost
,并且在第一个vhost中,其文档根目录设置为C:\wamp\www
。 computerstore
将被视为子目录;在这种情况下,docroot不会改变。
答案 1 :(得分:0)
您是否尝试在引号之间放置C:\ wamp \ www \ conputerstore?
这里的例子是我的vhost配置:
<VirtualHost *:8082>
DocumentRoot "c:/wamp/www/test"
DirectoryIndex index.php
<Directory "c:/wamp/www/test">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>