Вопрос

Мы используем 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';
Это было полезно?

Решение

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

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

Обычно я немного сжимаю это с помощью implode, поскольку DIRECTORY_SEPARATOR это так многословно:

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top