我在共享服务器上有一个cpanel帐户,我遇到了使用context_document_root的问题,因为它试图从实际服务器的include_path中提取文件而不是我的特定用户帐户包含路径。我需要弄清楚发生了什么。
这是错误:
Warning: include_once(): Failed opening '/WMS/configuration.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/kylej/public_html/index.php on line 4
该文件位于public_html / WMS / configuration.php中,实际上就在那里。
在我的htaccess中:我添加了RewriteBase /~kylej/
,我甚至尝试在我的根目录中创建一个php.ini文件,其中包含ini_set('include_path', '/home/kylej/public_html');
。
有人可以帮忙吗?
在.php文件中,这是我的include:include_once($_SERVER['CONTEXT_DOCUMENT_ROOT'] .'/WMS/configuration.php');
答案 0 :(得分:0)
显然,$_SERVER['CONTEXT_DOCUMENT_ROOT']
正在解析为null
/空值。这就是为什么你不应该在你的应用程序中添加外部依赖项。
使用相对于__DIR__
的路径,从而保持您的应用可移植。
include_once __DIR__ . '/WMS/configuration.php';
在/home/kylej/public_html/index.php
,__DIR__
将解析为/home/kylej/public_html
。
此外,启用正确的错误报告和显示会提醒您$_SERVER['CONTEXT_DOCUMENT_ROOT']
未设置。