致命错误:require_once()[function.require]:需要打开失败

时间:2011-04-13 09:28:49

标签: php

我在php项目中工作,它的错误为:

Warning:
  

require_once(ROOT_PATH / lib / confs / Conf.php)[function.require-once]:无法打开流:.. \ htdocs \ GProject \ lib \ exception \ ExceptionHandler.php中没有这样的文件或目录20

     

致命错误:require_once()[function.require]:在.. \ htdocs \ GProject中打开所需的'ROOT_PATH / lib / confs / Conf.php'(include_path ='。; C:\ php5 \ pear')失败第20行的\ lib \ exception \ ExceptionHandler.php

但是在\ExceptionHandler.php文件中,第20行是

require_once ROOT_PATH . '/lib/confs/Conf.php';

我在lib/confs/Conf.php下面有文件Conf.php,即使我收到错误。

可能是什么问题。 提前谢谢。

4 个答案:

答案 0 :(得分:7)

我会通过以下假设调试这个,

  1. 该文件不存在。
  2. ROOT_PATH设置不正确。
  3. 当前的工作目录不是预期的,所以如果ROOT_PATH是相对的,它就会打破完整的路径。
  4. 如果不是上述情况,我不确定。

    必须将某些库安装到PHP库路径中列出的目录中。在这些情况下,您有几个选择:

    • 默认情况下将库安装到PHP搜索的目录中(例如/ usr / share / php)。
    • 使用set_include_path更新包含路径,而不覆盖旧路径(将get_include_pathPATH_SEPARATOR结合使用)。

答案 1 :(得分:2)

您的脚本中未定义

ROOT_PATH。这应该是一个定义的常量,带有根路径的值。

检查它是否已定义。

if (defined('ROOT_PATH')) { echo 'Defined';} else { echo 'Not defined'; }

没有定义。

如果已定义,那么您的错误消息将包含已定义常量的值,因为它包含常量错误。

在脚本中定义。

define('ROOT_PATH',$_SERVER['DOCUMENT_ROOT']); //an example

或者您忘记包含定义了这些常量的配置文件。

答案 2 :(得分:1)

只需对传递给require_once函数的整个路径进行回显,并仔细检查它是否有问题:

echo ROOT_PATH . "/lib/confs/Conf.php";

答案 3 :(得分:0)

我今天遇到了这个问题。我找到了答案。 PHP Bug #23392

基本上你必须安装Pear OLE扩展。

梨安装OLE