Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在windows上更改apache的documentroot不是';行不通_Php_Apache - Fatal编程技术网

Php 在windows上更改apache的documentroot不是';行不通

Php 在windows上更改apache的documentroot不是';行不通,php,apache,Php,Apache,我正在尝试将本地windows计算机上的documentroot更改为指向htdocs下面的子目录。我已经更改了httpd.conf中的DocumentRoot位置以及目录位置。我重新启动了Apache,但用PHP打印出文档根,它仍然指向默认位置 httpd.conf中的更改: DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/folder_test/website" <Directory

我正在尝试将本地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>
我的PHP代码:

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


我重新启动了Apache…我缺少什么?

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

  • 将更改保存在一个单独的文件中,在其他位置使用相同的名称 httpd.conf
  • 将apache根文档中的http.conf重命名为 httpd_backup.conf或直接删除它
  • 现在将您创建的新文件(即httpd.conf)复制到apache 根文档
  • 转到“打开apache监视器”并重新启动
  • 清除浏览器中的所有缓存和cookie,然后重试
  • 打开“\conf\extra\httpd vhosts.conf”文件

    改变

    <VirtualHost _default_:80>
    DocumentRoot "${SRVROOT}/htdocs"
    #ServerName www.example.com:80
    </VirtualHost>
    
    
    DocumentRoot“${SRVROOT}/htdocs”
    #ServerName www.example.com:80
    
    部分以反映所需的目录,在您的情况下:

    <VirtualHost _default_:80>
    DocumentRoot "${SRVROOT}/htdocs/folder_test/website"
    #ServerName www.example.com:80
    </VirtualHost>
    
    
    DocumentRoot“${SRVROOT}/htdocs/folder_test/website”
    #ServerName www.example.com:80
    
    在搜索了数百个主题后,这终于对我有用了!谢谢,这对我很有效。然后我收到一条消息:“访问被禁止!”消息,我还必须将directory元素添加到vhost conf文件中,您可以在这里阅读更多信息:
    <VirtualHost _default_:80>
    DocumentRoot "${SRVROOT}/htdocs/folder_test/website"
    #ServerName www.example.com:80
    </VirtualHost>