当前位置:  开发笔记 > 编程语言 > 正文

如何以编程方式确定PHP中的文档根?

如何解决《如何以编程方式确定PHP中的文档根?》经验,为你挑选了1个好方法。

这是我最近遇到的一个问题 - 在webhost上配置错误的apache.这意味着所有依赖$_SERVER['DOCUMENT_ROOT']break的脚本.我发现最简单的解决方法是在一些共享的全局包含文件中设置变量,但不要忘记它是一种痛苦.我的问题是,如何以编程方式确定正确的文档根?

例如,在一台主机上,设置如下:

$_SERVER['DOCUMENT_ROOT'] == '/htdocs'

真正的文件根源是:

test.example.com -> /data/htdocs/example.com/test
www.example.com -> /data/htdocs/example.com/www

我想要一个从www.example.com/blog/(在路径上/data/htdocs/example.com/www/blog)运行的脚本来获取正确的值/data/htdocs/example.com/www.

在另一台主机上,设置有点不同:

$_SERVER['DOCUMENT_ROOT'] == '/srv'
test.example.com -> /home/virtual_web/example.com/public_html/test
www.example.com -> /home/virtual_web/example.com/public_html/www

这有什么解决方案吗?或者是唯一的方法是不依赖$_SERVER['DOCUMENT_ROOT']并修复我在我的网站上运行的所有软件?在托管方面修复这个似乎不是一个选项,我还没有遇到一个正确配置的主机.我得到的最好的是一个指向www.example.com的文档根,至少在open_basedir中 - 他们使用了另一个命名方案,www.example.com指出/u2/www/example_com/data/www/.



1> Eineki..:

在PHP5中,有一个魔术常量__FILE__,它包含出现的文件的绝对路径.您可以将它与dirname结合使用来计算文档根目录.

您可以在配置文件中添加如下所示的语句

define ('DOCUMENT_ROOT', dirname(__FILE__));

这应该可以解决问题


从PHP 5.3开始,这也是`__DIR__`使用而不是`dirname(__ FILE __)`.
推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有