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