2011-04-13 174 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"; 
相關問題