Функция set_include_path не работает, PHP 5.2.13

Мы используем сервер VPS в нашей компании, и я пытаюсь установить интерфейс веб-почты Roundcube

Но я даже не могу добраться до фазы конфигурации, потому что функция 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 ответ

Решение

Я делаю это из памяти, так что это может быть не совсем правильно, но я думаю, что вы путаете разделитель пути и каталога. Там также может быть более хороший способ сделать это, чем то, что вы делаете (т.е. собрать весь путь сразу). Попробуйте что-то вроде этого:

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'));

Я думаю, что (что наиболее важно) изменив некоторые из ваших PATHs на DIRECTORYs, и (возможно) с использованием добавочного get_include_path а также set_include_path звонки, это будет более читабельным, портативным и просто может работать должным образом.

Другие вопросы по тегам