在 Windows 上更改 apache 的 documentroot 不起作用

Posted

技术标签:

【中文标题】在 Windows 上更改 apache 的 documentroot 不起作用【英文标题】:changing documentroot for apache on windows isn't working 【发布时间】:2012-03-22 08:01:48 【问题描述】:

我正在尝试将本地 Windows 机器上的 documentroot 更改为指向 htdocs 下的子目录。我已经更改了 httpd.conf 中的 DocumentRoot 位置以及目录位置。我已经重新启动了 Apache,但使用 php 打印出文档根目录,它仍然指向默认位置。

httpd.conf 内部的变化:

DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/folder_test/website"

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/folder_test/website">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

当我导航到http://localhost/folder_test/website 时,我从我的 PHP 输出中看到以下内容:

C:/Program Files/Apache Software Foundation/Apache2.2/htdocs

我的 PHP 代码:

<?php 
  //Get the document root 
  $root = getenv("DOCUMENT_ROOT") ; 
  Echo $root; 
?> 

我已经重新启动了 Apache...我错过了什么?

【问题讨论】:

【参考方案1】:

打开“\conf\extra\httpd-vhosts.conf”文件。

改变

<VirtualHost _default_:80>
DocumentRoot "$SRVROOT/htdocs"
#ServerName www.example.com:80
</VirtualHost>

反映所需目录的部分,在您的情况下:

<VirtualHost _default_:80>
DocumentRoot "$SRVROOT/htdocs/folder_test/website"
#ServerName www.example.com:80
</VirtualHost>

【讨论】:

在搜索了数百个主题之后,这终于对我有用了!谢谢。 这对我有用。然后我收到消息:“禁止访问!”消息,我还必须将目录元素添加到 vhost conf 文件中,您可以在此处阅读更多信息:***.com/a/23594870/7199922【参考方案2】:

嘿,如果仍然没有回答: 有时,当您更改 httpd.conf 中的文档根目录和其他信息时,它并没有反映出来,因为您所做的更改根本没有保存。在 notepad++ 和 diffmerge 中,它不显示它没有保存,相反它显示为已保存。在普通记事本中打开它,当您尝试替换它时,它说访问被拒绝。可能是因为这些文件夹没有用户的修改权限。因此,为此您需要

    将更改保存在其他同名文件中 httpd.conf 将 apache 根文档中的 http.conf 重命名为 httpd_backup.conf 或删除它。 现在将您创建的新文件(即 httpd.conf)复制到 apache 根文档。 转到“打开 apache 监视器”并重新启动 清除浏览器中的所有缓存和 cookie,然后重试

【讨论】:

以上是关于在 Windows 上更改 apache 的 documentroot 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Apache2更改本地主机目录

更改 httpd 配置上的侦听端口以进行 Varnish 配置

windows下更改Apache以fastcgi方式运行php

在windows下以服务的方式启动时提示如下: “windows 不能在 本地计算机 启动 Apache。

VirtualHost 阻止 XAMPP 声明启动 Apache

Apache 未在 Windows 10 中的 XAMPP 中启动