2011-04-13 127 views
5

我在PHP项目工作,其给出错误为:致命错误:require_once()[function.require]:无法打开所需

Warning: 

require_once(ROOT_PATH/lib/confs/Conf.php) [function.require-once]: failed to open stream: No such file or directory in ..\htdocs\GProject\lib\exception\ExceptionHandler.php on line 20

Fatal error: require_once() [function.require]: Failed opening required 'ROOT_PATH/lib/confs/Conf.php' (include_path='.;C:\php5\pear') in ..\htdocs\GProject\lib\exception\ExceptionHandler.php on line 20

但在\ExceptionHandler.php文件,20日线是

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

而且我下lib/confs/Conf.php本身的文件Conf.php,即使我得到的错误。

可能是什么问题。 在此先感谢。

+0

你也可以说定义ROOT_PATH的代码? – shanethehat 2011-04-13 09:32:19

回答

2

ROOT_PATH未在您的脚本中定义。这应该是您的根路径的值定义的常量。

检查它是否定义。

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

它没有定义。

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

在您的脚本中定义。

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

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

6

我会去通过以下假设调试此,

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

如果以上都不是这种情况,我不确定。

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

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

只要做你传递给放在require_once功能并仔细检查,如果有什么不对的地方整个路径的回声:

echo ROOT_PATH . "/lib/confs/Conf.php"; 
相关问题