在 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 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
更改 httpd 配置上的侦听端口以进行 Varnish 配置
windows下更改Apache以fastcgi方式运行php
在windows下以服务的方式启动时提示如下: “windows 不能在 本地计算机 启动 Apache。