加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – $_SERVER [‘document_root’]返回/ htdocs not / public

发布时间:2020-12-13 17:13:36 所属栏目:PHP教程 来源:网络整理
导读:我正在寻找切换到新主机,他们提供这个漂亮的
我正在寻找切换到新主机,他们提供这个漂亮的小“临时网址”来测试你的文件切换之前.一切都很好,花花公子.所以我复制了我的所有文件.在每个页面的顶部,我需要来自服务器的另一个文件,该文件存储在public_html / includes / head.php中.现在无论出于何种原因,$_SERVER [‘document_root’] var返回/public_html/htdocs/includes/head.php(服务器上不存在)而不是/public_html/includes/head.php(确实存在) .产生的错误如下:

Warning: require_once(/home/secure31/public_html/htdocs/includes/head.php) 
[function.require-once]: failed to open stream: Permission denied in 
/home/stephe80/public_html/index.php on line 6

有罪的代码:

require_once($_SERVER['DOCUMENT_ROOT'] . '/includes/head.php');

我倾向于认为这是与他们的临时网址设置相关的错误,但我不想通过我的DNS转移并发现我的所有文件都被破坏了.我可以将它们改为绝对路径,但我很好奇我是否遗漏了一些东西.任何见解将不胜感激.谢谢!

解决方法

我建议使用 __FILE__常量并从那里计算你的htdocs文件夹.它比依赖$_SERVER超全局更可靠,因为它实际上因服务器而异.

示例(您在根文件夹中的index.php中调用):

$htdocs = str_replace(basename(__FILE__),__FILE__,'');
define('ROOT_FOLDER',$htdocs);
require_once(ROOT_FOLDER . '/includes/head.php');

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读