zaLinux.ru

Ошибка «Warning: Unknown: open_basedir restriction in effect.» (РЕШЕНО)


В работе PHP можно столкнуться с ситуацией, когда один и тот же скрипт нормально работает в одной папке и не запускается при перемещении в другую папку. Либо при установке веб приложения на сервере Linux оно может не работать, хотя веб сервер настроен правильно и другие сайты работают.

Либо проблема может следующая: PHP не может создать файл, открыть файл или записать в файл в папке, для которой у него достаточно привилегий или даже в папку, открытую для всех.

В логах веб-сервера могут быть примерно следующие сообщения:

[Wed Apr  1 13:11:34 2020] PHP Warning:  Unknown: open_basedir restriction in effect. File(/usr/share/seeker/template/nearyou/php/info.php) is not within the allowed path(s): (/srv/http/:/etc/webapps/:/usr/share/webapps/:/tmp/:/home/mial/) in Unknown on line 0
[Wed Apr  1 13:11:34 2020] PHP Warning:  Unknown: failed to open stream: Operation not permitted in Unknown on line 0
[Wed Apr  1 13:11:34 2020] PHP Fatal error:  Unknown: Failed opening required '/usr/share/seeker/template/nearyou/php/info.php' (include_path='.:') in Unknown on line 0
[Wed Apr  1 13:11:34 2020] 127.0.0.1:33906 [200]: POST /php/info.php - Unknown: Failed opening required '/usr/share/seeker/template/nearyou/php/info.php' (include_path='.:') in Unknown on line 0
[Wed Apr  1 13:11:34 2020] 127.0.0.1:33906 Closing

В сообщениях упоминается open_basedir. Директива open_basedir указывается в конфигурационном файле PHP (php.ini) и устанавливает директории, к которым может иметь доступ PHP. Более подробную информацию о данной директиве вы найдёте в статье «Для чего нужна и как использовать open_basedir».


Для исправления этой ошибки откройте конфигурационный файл PHP, в Linux он расположен по пути /etc/php/php.ini.

Найдите в этом файле директорию open_basedir и добавьте папку, в которой вам нужно запустить PHP скрипт, либо в которой PHP должен иметь доступ к файлам. В Windows разделяйте директории символом ; (точкой с запятой). На всех остальных системах, разделяйте директории символом : (двоеточием). При работе в качестве модуля Apache, пути open_basedir автоматически наследуются от родительских директорий.

Если скрипт запускаете через веб-сервер, то перезапустите веб-сервер, чтобы он использовал новые настройки.

По этой же причине могут быть проблемы в работе phpMyAdmin, подробности смотрите в статье «$Cfg[‘TempDir’] (./tmp/) недоступен в phpMyAdmin (РЕШЕНО)».


Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *