2011-11-18 73 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