Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > php - проблема open_basedir


Автор: quiz 17.6.2010, 20:03
В один прекрасный момент на сервере перестали работать функции, которые обращаются к папкам, расположенным выше самого скрипта.
Перестали работать с только что загруженными файлами функции типа getimagesize($file), т.к. они обращаются к файлам во временной директории. Перестала работать функция copy().
Самое интересное, что перестали даже инклюдиться php-скрипты, находящиеся в папке выше.

Вывод ошибок дает следующее (это использование getimagesize()):
Цитата

open_basedir restriction in effect. File(/tmp/phpNEXW9o) is not within the allowed path(s): (.)


Как видите, доступные пути - это некая точка. Откуда она взялась и где она задана - не понятно. Естественно начал гуглить на тему этой проблемы, однако решения проблемы не нашлось ни в httpd.conf (нет параметров, относящихся к open_basedir вообще), ни в php.ini (параметр open_basedir закомментирован).

Apache/2.2.3 (CentOS) , php 5.1.6

Буду рад любым советам, уже голову сломал :(

Автор: IgorIV 17.6.2010, 20:58
А что за сервер, что за прекрасный момент - думайте сами smile
Поищи в vhosts.conf

Автор: quiz 17.6.2010, 21:03
Сервер VDS у одного из провайдеров, какой софт стоит написал в первом посте Apache/2.2.3 (CentOS), php 5.1.6
Какой момент не понятно вообще, т.к. никто из админов ничего не трогал (по их словам), в этом и загвоздка :(

Автор: quiz 20.7.2010, 13:52
Так и не разобрался :( smile 

Автор: skyboy 20.7.2010, 14:25
Цитата(php.net/manual/en/ini.core.php)

The special value .  indicates that the working directory of the script will be used as the base-directory.

Так что вне зависимости от того, меняли что-то админы или нет, у тебя есть два пути:
1. подкорректировать параметр open_basedir в php.ini
2. отказаться от запуска скриптов уровнем выше  - скопировать их внутрь рабочей папки запускаемого скрипта

Автор: quiz 21.7.2010, 23:16
php.ini прописано в ноль, но рестрикт никак не меняется. Отказаться от запуска скриптов выше можно, но от загрузки файлов на сервер не откажешься :(

Долго рылся во всяческих конфах, нашел secure.conf - там прописал пути и все стало ок!

Автор: IgorIV 22.7.2010, 15:48
Цитата(quiz @  22.7.2010,  00:16 Найти цитируемый пост)
но от загрузки файлов на сервер не откажешься 

У меня на вдс прописано open_basedir и файлы загружаются в /var/tmp. Так что - работает?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)