php - Wamp vhost docroot 始终显示为 c :\wamp\www not the vhost docroot

标签 php wamp config wampserver

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

问题依旧。无论我做了什么更改,文档根目录始终显示为 c:\wamp\www。

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

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

因此页面加载,当然有错误。我的页面都引用了 $_SERVER['DOCUMENT_ROOT'] 并且在我的实时网站上都完美运行。

所以最重要的是我已经前后检查了我的配置。/与\,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>

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

最佳答案

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 将通过 IP 解析您站点的路径,并且由于您指定了一个 IP,与所有虚拟主机相同,最后一个将优先于前面的。您最后一个虚拟主机的文档根目录是 C:\wamp\www - 使您描述的行为完全正常。

更新:

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

关于php - Wamp vhost docroot 始终显示为 c :\wamp\www not the vhost docroot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5559666/

相关文章:

javascript - 是否可以通过 support/index.js 在 Cypress 上仅运行特定测试?

javascript - 将 PHP 文件中的 HTML 表单数据传递到其他 3 个 PHP 文件之一

PHP 多维数组 - 计算实例数

php - 匿名函数给了我什么?

PHP 脚本在 WAMP 上执行但不在 linux 服务器上执行

php - 无法使用wamp修改数据库中的数据

grails - 如何在 Config.groovy 中指定目标目录?

php - 如何检查当前页面是否是wordpress中的插件管理面板

mysql - 使用拼写错误的列名执行外键查询没有问题

java - 如何在没有spring框架的情况下读取配置文件(*.yaml *.properties)