Страница 1 из 1

Заливка базы данных или Open_basedir

Добавлено: 02 окт 2016, 14:46
ERserver
Дайте полную инструкцию по устарнению данной ошибки
Включаем Openserver.
Закрываем от внешнего доступа (не нужен внешний доступ, сервер будет только локально, предложение не делай так не рассматривается).
Создаем базу данных.
Пробуем импортировать базу данных.
Получаем ошибку (идем на текущий форум и ответов нет):
Warning in .\libraries\file_listing.lib.php#31
 is_file(): open_basedir restriction in effect. File(c:/openserver/userdata/temp/..) is not within the allowed path(s): (c:/openserver/domains;c:/openserver/userdata/temp;c:/openserver/modules/system/html/openserver;c:/openserver/modules/php/PHP-5.6-x64)

Backtrace

.\libraries\file_listing.lib.php#31: is_file(string 'c:/openserver/userdata/temp/..')
.\libraries\file_listing.lib.php#53: PMA_getDirContent(
string 'c:/openserver/userdata/temp/',
string '@\\.(csv|txt|ods|shp|sql|xml)(\\.(gz|bz2|zip))?$@',
)
.\libraries\Util.class.php#3397: PMA_getFileSelectOptions(
string 'c:/openserver/userdata/temp/',
string '@\\.(csv|txt|ods|shp|sql|xml)(\\.(gz|bz2|zip))?$@',
string '',
)
.\libraries\display_import.lib.php#243: PMA_Util::getSelectUploadFileBlock(
array,
string 'c:/openserver/userdata/temp',
)
.\libraries\display_import.lib.php#426: PMA_getHtmlForImportOptionsFile(
integer 104857600,
array,
)
.\libraries\display_import.inc.php#59: PMA_getHtmlForImport(
string '57f0f06a8dd63',
string 'database',
string 'winchmsk',
string '',
integer 104857600,
array,
NULL,
NULL,
)
.\db_import.php#23: require(.\libraries\display_import.inc.php)

Re: Заливка базы данных или Open_basedir

Добавлено: 02 окт 2016, 14:53
Максим
А из какого файла (полный путь покажите) вы импортируете базу?

Re: Заливка базы данных или Open_basedir

Добавлено: 02 окт 2016, 14:59
ERserver
Максим писал(а):А из какого файла (полный путь покажите) вы импортируете базу?
Путь довольно простой. Файл базы данных лежит в папке C:\Users\имя пользователя\Downloads

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

пс: Уважаемый разработчик, спасибо Вам за openserver.

Re: Заливка базы данных или Open_basedir

Добавлено: 02 окт 2016, 15:25
Максим
Включив защиту вы активировали open_basedir и указанная вами папки в разрешенный путь не входит и естественно что вы не можете импортировать оттуда базу. Положите файл с базой в папку c:/openserver/userdata/temp/.

Re: Заливка базы данных или Open_basedir

Добавлено: 02 окт 2016, 19:32
ERserver
Уважаемый разработчик.
Вопрос:
В предыдущих версиях отсутствовал open_basedir, как его выкорчевать из версии 5.2 насовсем? Или отключить вообще?

Инструкция найденная в интернете, не работает:
php.ini (открываем в редакторе)
/ open_basedir (ищем по тексту)
;open_basedir =
меняем на
open_basedir = none
После её внесения отваливается phpmyadmin с ошибкой:
The mbstring extension is missing. Please check your PHP configuration.

Re: Заливка базы данных или Open_basedir

Добавлено: 02 окт 2016, 19:43
ERserver
Решение нашлось
Комментируем вот эти строки в php.ini и никаких ошибок нет.
Может кому пригодится.
Комментирование производиться путем внесения спереди знака ;
%disallow%open_basedir = "%ssitedir%;%sprogdir%/userdata/temp;%sprogdir%/modules/system/html/openserver;%sprogdir%/modules/php/%phpdriver%"
;%disallow%disable_functions = exec,system,shell_exec,passthru,popen,pclose,dl,apache_note,apache_setenv,define_syslog_variables,pcntl_exec,syslog,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,apache_child_terminate,posix_getpwuid

Re: Заливка базы данных или Open_basedir

Добавлено: 03 окт 2016, 00:39
Максим
ERserver писал(а):В предыдущих версиях отсутствовал open_basedir, как его выкорчевать из версии 5.2 насовсем? Или отключить вообще?
В насколько предыдущих? Если вы пользовались версией 5-летней давности, то вполне возможно. А так open_basedir присутствует уже несколько лет и активируется при включении защиты от внешнего доступа.

И прекратите оформлять код через кнопку Цитата. Для этого есть кнопка КОД.

Re: Заливка базы данных или Open_basedir

Добавлено: 04 окт 2016, 18:17
ERserver
Извините, что не использовал кнопку код.
5-ти летней давности не использовал. В версии Openserver 5.2.0 например при включении защита от внешнего доступа нет проблем с заливкой баз данных из любой директории. Только в версии 5.2.5.
Перекладывать базу данных скаченную с хостинга в папку temp - зачем?
Зачем локальный сервак для тестов использовать как открытый для доступа из вне, если есть хостинги? Подвергать свой компьютер уязвимости?
Конечно кому-то это нужно, но н всем.

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

Ещё раз спасибо за Ваш openserver и помощь.

Re: Заливка базы данных или Open_basedir

Добавлено: 04 окт 2016, 22:02
Максим
ERserver, 5.2.0? Да извините, ошибся, не 5 лет, а 2 годичной давности, что сути не меняет. В инструкции этого конечно нет и не будет, поскольку Open Server рассчитан на тех пользователей, кто понимает как конфигурировать PHP и в состоянии сам закомментировать какую-либо опцию в конфиге PHP если ему это необходимо. Что в данном случае вы и сделали самостоятельно.

По поводу последнего вопроса могу сказать что мне не совсем понятна ваша претензия. Защита - это опция и она легко включается или отключается в настройках программы. Если вам не нужна защита, то не включайте её. А сделана она была как раз для тех пользователей, кто использует Open Server как полноценный сервер в сети Интернет, а не как "локальный сервак для тестов".