set_include_path函数不起作用,PHP 5.2.13


set_include_path function does not work, PHP 5.2.13

我们公司正在使用VPS服务器,我正在尝试安装Roundcube webmail接口

但是我甚至不能进入配置阶段,因为set_include_path函数不起作用,脚本找不到所需的配置文件。

我得到一个错误,如"致命错误,ini_set/set_include_path函数不工作。"

我认为是某些php设置导致的,但我不知道是哪个。

如果我能得到一些帮助,我会很高兴的。

Thanks in advance

//EDIT下面是脚本中的代码

ini_set('error_reporting', E_ALL&~E_NOTICE);
ini_set('display_errors', 1);
define('INSTALL_PATH', realpath(dirname(__FILE__) . '/../').'/');
define('RCMAIL_CONFIG_DIR', INSTALL_PATH . 'config');
$include_path  = INSTALL_PATH . 'program/lib' . PATH_SEPARATOR;
$include_path .= INSTALL_PATH . 'program' . PATH_SEPARATOR;
$include_path .= INSTALL_PATH . 'program/include' . PATH_SEPARATOR;
$include_path .= ini_get('include_path');
set_include_path($include_path);
require_once 'utils.php';
require_once 'main.inc';

我从记忆中做这个,所以它可能不太正确,但我认为你可能混淆了路径和目录分隔符。也许还有比你现在所做的更好的方法(即一次组装整个路径)。试试这样做:

define('INSTALL_PATH', dirname(dirname(__FILE__)));

set_include_path(get_include_path() . PATH_SEPARATOR . INSTALL_PATH . DIRECTORY_SEPARATOR . 'program' . DIRECTORY_SEPARATOR . 'lib'); set_include_path(get_include_path() . PATH_SEPARATOR . INSTALL_PATH . DIRECTORY_SEPARATOR . 'program' . DIRECTORY_SEPARATOR . 'include'); set_include_path(get_include_path() . PATH_SEPARATOR . INSTALL_PATH . DIRECTORY_SEPARATOR . 'program');

通常我用内爆压缩一下,因为DIRECTORY_SEPARATOR太啰嗦了:

...PATH_SEPARATOR . implode(DIRECTORY_SEPARATOR, Array(INSTALL_PATH, 'program', 'lib'));

我认为(最重要的是)改变一些路径到目录,并(可能)使用增量get_include_pathset_include_path调用,它将更可读,可移植,只是可能正常工作。