2015-09-18 3 views
1

Я использую MDB2 в старом проекте php, который я только что переместил на новый сервер.Предупреждение openbase_dir говорит, что файл не находится в пути, но затем правильно указывает путь

Структура проекта основана на некотором open_basedir config.

Но есть что-то довольно странное.

Я получаю следующее сообщение об ошибке, в котором говорится, файл /usr/share/pear/MDB2/Driver/mysql.php не находится в пределах допустимых путей, а затем перечисляет путь к файлу /usr/share/pear/MDB2/Driver в списке разрешенных дорожек ...

Почему может быть?

PHP Warning: is_readable(): open_basedir restriction in effect. 
File(/usr/share/pear/MDB2/Driver/mysql.php) is not within the allowed path(s): 
(/var/some-paths:/usr/share/php:/usr/share/pear/MDB2/Driver) in /usr/share/php/MDB2.php on line 933 
+1

Возможно, вам нужно использовать трейлинг-косые черты, посмотрите https://stackoverflow.com/questions/11603156/php-open-basedir-allowed-path – syck

+0

Спасибо. Я не знал, что нужны косые черты. Я попробовал, но по какой-то причине в моем случае это не имело никакого значения. Директива работает одинаково хорошо с или без. – petesiss

ответ

0

Решение состоит в том, что конкретного файла не существует.

Необязательные функции Pear, такие как конкретные типы БД, должны устанавливаться отдельно, и это не было сделано.

Сообщение об ошибке находится в заблуждении. Я думаю, что технически это правильно, но это делает ошибку, похоже, проблемой с конфигурацией open_basedir, а не с файлом, который не найден.