Настройка PHP set_include_path - PullRequest
       10

Настройка PHP set_include_path

4 голосов
/ 12 декабря 2011

У меня проблема с set_include_path, я прочитал много сообщений об этой проблеме, но ни одно из них не работает для меня. Я нахожусь на Debian, и мой корневой каталог будет установлен в / home / project /

Итак, я попробовал эти 4 разные вещи:

ini_set("include_path", '/home/project');
ini_set("include_path", '.:/home/project');
set_include_path('.:/home/project');
set_include_path('/home/project');
set_include_path(get_include_path().PATH_SEPARATOR.'/home/project');

Но ничего не работает ... когда я делаю echo get_include_path (); это кажется хорошим каждый раз.

Но 4-й метод отлично работает с WAMP на моем компьютере.

Сообщение об ошибке на ВСЕХ из них:

Warning: include(/config/config.php) [function.include]: failed to open stream: No such file or directory in /home/project/web/www.project.com/index.php on line 3

Warning: include() [function.include]: Failed opening '/config/config.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear:/home/project') in /home/project/web/www.project.com/index.php on line 3

Ответы [ 3 ]

6 голосов
/ 12 декабря 2011

Попробуйте использовать константу PATH_SEPARATOR, как это сделано в документации.

set_include_path(get_include_path() . PATH_SEPARATOR . $path);

Возможно, это зависит от системы, в которой вы развертываете свое приложение ..

ОБНОВЛЕНИЕ : Путь включения в порядке, но проблема в чем-то другом ..

Вы не должны включать в себя:

require '/config/config.php'

, но

require 'config/config.php'

Так что бросьте начальную косую черту, и она должна работать.

1 голос
/ 12 декабря 2011

Разделитель пути может отличаться.

set_include_path(implode(PATH_SEPARATOR, array(
    '.',
    '/home/project',
    get_include_path()
));

При этом вы получаете текущий включаемый путь, добавленный к тем, которые вы добавили самостоятельно, и правильный разделитель пути для каждой системы.

1 голос
/ 12 декабря 2011

Установите с помощью этого: set_include_path(get_include_path().PATH_SEPARATOR.'/path/');, это не удалит существующий include_path, установленный другими сценариями, и не добавит системный разделитель по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...