首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wamp vhost docroot始终显示为c:\wamp\www,而不是vhost docroot

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

Stack Overflow用户
提问于 2011-04-06 07:14:14
回答 2查看 3.8K关注 0票数 4

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

问题仍然存在。无论我做了什么更改,文档根目录总是显示为c:\wamp\www。

即使我将httpd.conf DocumentRoot更改为另一个路径,它仍然显示为c:\wamp\www

奇怪的是,如果虚拟主机设置错误,我的index.php应该不会显示。但事实上,它确实如此。我有一行代码来回显$_SERVER['DOCUMENT_ROOT'],它总是显示为c:\wamp\www,而不是我分配的任何vhosts文档根目录。

所以页面会加载,当然也会有错误。我的页面都引用了$_SERVER['DOCUMENT_ROOT'],并且在我的实时站点上都能完美地工作。

所以底线是我已经前后检查了我的配置。/ vs. \,主机文件正确,文档根路径正确,并且指向包含正确文件的实际文件夹。我尝试过配置的每一种“标准”和非标准可能性。

一定有一些其他的因素在阻止它的工作。如果可以的话,请帮助我。

请不要建议我尝试其他配置。我都试过了。

请告诉我你知道为什么会发生这种情况,以及如何修复它。我有一个脚本,几乎做到了这一点,但我觉得只是缺少修复。我给海报留了言,还没有收到他的回复。

我希望这里的人有一个解决方案,而不是建议尝试另一个配置。除非你知道这个问题并解决了,否则请不要回复。这听起来可能很粗鲁,但我已经看过并尝试过所有的配置。

代码语言:javascript
复制
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>

是配置。为什么不能在注释中使用回车符进行编辑?

EN

回答 2

Stack Overflow用户

发布于 2011-04-06 07:46:27

C:\Windows\System32\drivers\etc\hosts中添加以下行:

代码语言:javascript
复制
127.0.0.1 computerstore.local

httpd.conf中,确保未注释此行:

代码语言:javascript
复制
Include "conf/extra/httpd-vhosts.conf"

(这应该指向您的vhosts文件的位置)

您的httpd-vhosts.conf文件应包含以下内容:

代码语言:javascript
复制
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将按IP解析站点的路径,并且由于您指定了一个与所有虚拟主机相同的IP,因此最后一个将优先于前面的IP。你的最后一个vhost的docroot是C:\wamp\www --这使得你所描述的行为完全正常。

更新:

由于为域名computerstore.local指定了文档根C:\wamp\www\computerstore,请记住还要转到浏览器中的http://computerstore.local。如果您尝试http://localhost/computerstore,域名将被解析为localhost,并且在第一个vhost中,其文档根被设置为C:\wamp\wwwcomputerstore将被视为一个子目录;在这种情况下,不会更改文档根目录。

票数 6
EN

Stack Overflow用户

发布于 2011-04-07 16:16:57

您是否尝试将C:\wamp\www\conputerstore放在引号之间?

下面是我的vhost配置示例:

代码语言:javascript
复制
<VirtualHost *:8082>  
  DocumentRoot "c:/wamp/www/test"  
  DirectoryIndex index.php  
  <Directory "c:/wamp/www/test">  
    AllowOverride All  
    Allow from All  
  </Directory>  
</VirtualHost>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5559666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档