2011-12-01 46 views
0

我們正在利用我們公司的一個VPS服務器,我試圖安裝Roundcube Webmail界面通過set_include_path功能不起作用,PHP 5.2.13

但我甚至不能去配置階段,因爲通過set_include_path函數不起作用,腳本找不到所需的配置文件。

我得到一個錯誤,如「致命錯誤,ini_set/set_include_path函數不起作用」。

我假設一些php設置導致這個,但我不是哪一個。

如果我能得到一些幫助,我會很高興。

在此先感謝

//編輯這裏是從腳本

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'; 
+1

「致命錯誤,功能不起作用」?請張貼實際報價的錯誤。 –

+1

我收到「致命錯誤:ini_set/set_include_path不起作用」。並在安裝文件夾中獲得「Warning:require_once(main.inc)[function.require-once]:無法打開流:沒有這樣的文件或目錄在/usr/share/psa-horde/installer/index.php上行45「 –

+0

看到這個錯誤:http://trac.roundcube.net/ticket/1484675 – Prisoner

回答

0

我從內存中這樣做,所以它可能不是很正確的代碼,但我想,也許你混淆了路徑和目錄分隔符。也許還有更好的方法來做到這一點,而不是你正在做的事情(即一次組裝整條路徑)。嘗試是這樣的:

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,它將更具可讀性,可移植性並且可能正常工作。

+0

你是對的我用dirname(__ FILE__)函數解決了這個問題,非常感謝 –