Wamp vhost docroot始终显示为c:\ wamp \ www而不是vhost docroot

时间:2011-04-05 23:14:14

标签: php wamp config wampserver

我已经尝试了几十个指南并阅读了大量信息,但我仍然无法找到解决问题的方法。我已经卸载,重新安装和检查,并仔细检查了每个可能的问题。

问题仍然存在。无论我做了什么改变,文档根总是显示为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>

是配置。为什么我不能在评论中用回车编辑?

2 个答案:

答案 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\wwwcomputerstore将被视为子目录;在这种情况下,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>