2011-11-18 50 views
2

我有問題,使得因爲錯誤訪問php.ini文件

Cannot redeclare _pear_call_destructors() in /usr/share/pear/PEAR.php on line 777 

調查後,我發現,唯一的辦法使其運行的PHP文件運行的一個問題是做出改變的PHP設置

include_path =」。:/ usr/share/

但我無法找到這個

include_path = ".:/usr/share/php" 
在我的php.ini文件

。哪些其他文件可以找到這個路徑?

+1

「是到PHP設置」?是做什麼與設置?爲什麼你有兩個include_path聲明?錯誤的複製和粘貼?那麼include_path對「重新聲明」錯誤可能會有什麼影響?如果找不到,但它已經被宣佈...你可以顯示一些代碼嗎? – FMaz008

+1

我不會在php.ini中更改它...如果它特定於此項目,那麼只需將其更改爲使用'set_include_path('。');'進行的第一個調用之一即可。這表示問題不是包含路徑的問題,它是你試圖包含兩次函數的定義。 – prodigitalson

回答

3

從我的頭頂有三種方法可以在腳本中設置包含路徑,以訪問此設置,在php.ini中搜索include_path確保你的目標是正確的.ini文件!一些設置有多個.ini's。 phpinfo()是識別正確.ini位置的朋友。如果你有機會到外殼,很容易抓住你所有的INI信息:

php -i | grep ini 

如果這個配置的.ini改變某些原因不能工作了,你可以嘗試使用set_include_pathini_set功能,在你的腳本的頂部重新聲明你的包含路徑。下面是從php.net部分撕開一個例子:

// Works as of PHP 4.3.0 
set_include_path('.'); 

// Works in all PHP versions 
ini_set('include_path', '.'); 

好運,快樂編碼。

PS:如果您使用的是你下載的定製梨包,無論是從使用包經理set_include_pathini_set覆蓋的include_path你的操作系統中刪除梨包,以防止與你的發行版加載附帶的梨。

+0

Thanxss很多..u使我的一天:) :) –

3

嘗試在你的PHP腳本設置它:

set_include_path('.'); 

確認這是在開始你的腳本,雖然。另外,如果你需要更多的東西添加到包含路徑,那麼這是你的語法:

set_include_path('/path/to/stuff' . 
    PATH_SEPARATOR . '/path/to/something-else/' . 
    PATH_SEPARATOR . get_include_path() . 
    PATH_SEPARATOR . '.' 
); 

請記住,這只是一個任意的例子。欲瞭解更多信息,請訪問this page