我无法弄清楚为什么这不起作用。
$docRoot = getenv("DOCUMENT_ROOT");
include_once($docRoot."/conn/connection.php");
include_once($docRoot."/auth/user.php");
它通过wamp在本地工作,但它不能在我的实时服务器上运行。我试过这个:
if(!include_once($docRoot."/auth/user.php")){
session_start();
$debug = array();
$debug["docRoot"] = $docRoot;
$debug["inc_path"] = $docRoot."/auth/user.php";
$debug["file_exists"] = file_exists($debug["inc_path"]);
$_SESSION['DEBUG'] = $debug;
// exit
header("Location:debug.php");
exit();
}
调试页面只是回显那个数组,它显示正确的绝对路径,并表明该文件确实存在。那么为什么include_once()没有工作呢?服务器(MediaTemple服务器上的DV帐户)根本没有配置,所以我想知道是否有一个apache或php设置搞砸了我。
最终,我想要的是一种以这样的方式引用文件的方式:如果我移动文件,或将其包含在另一个文件中,则不会有任何破坏。有什么想法吗?
答案 0 :(得分:0)
在调试中,您可以尝试is_readable($docRoot."/conn/connection.php")
。即使文件没有可读权限,file_exists
函数也会返回true。
如果您收到错误代码,我们可能会提供有关出错的更多信息。
答案 1 :(得分:0)
启用错误报告虚拟。事实证明,另一个文件中的一个包含打破了这个页面,在我打开错误报告之前我无法追踪它。
顺便提一下,有问题的包括在文件路径中缺少一个前导斜杠(include(“dir / file.ext”);),它在我的本地wamp设置上运行并在linux服务器上中断。