действует ограничение open_basedir. Файл (/) находится за пределами разрешенного пути: - PullRequest
75 голосов
/ 04 декабря 2009

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

Warning: is_writable() [function.is-writable]: 
open_basedir restriction in effect. 
File(/) is not within the allowed path(s):

Ответы [ 10 ]

90 голосов
/ 24 января 2016

Измените настройки open_basedir в вашей учетной записи хостинга и установите для них значение none. Найдите параметр open_basedir, указанный в разделе «Настройки PHP» вашей Plesk / cPanel. Установите его в «none» из раскрывающегося списка. Я показал их на картинке панели Plesk.

enter image description here enter image description here

35 голосов
/ 27 июня 2012

Чтобы устранить эту ошибку, вы должны отредактировать файл httpd.conf. Еще раньше это можно было увидеть в phpinfo в директиве раздела apache2handler Server Root. Например, в моем случае это так - / etc / httpd / httpd.conf. Откройте файл httpd.conf, найдите упоминание о параметре open_basedir. И установить его на нет. ( php_admin_value open_basedir none )

5 голосов
/ 21 сентября 2011

Для меня проблема была в плохих / отсутствующих значениях конфигурации для сервера Plesk, на котором все это работает. Я просто следовал инструкциям здесь: http://davidseah.com/blog/2007/04/separate-php-error-logs-for-multiple-domains-with-plesk/

Вы можете настроить PHP, чтобы иметь отдельный файл журнала ошибок для каждого определения VirtualHost. Хитрость заключается в том, чтобы точно знать, как его настроить, потому что вы не можете напрямую коснуться конфигурации, не нарушая Plesk. Каждое доменное имя в вашем (dv) имеет свой собственный каталог в / var / www / vhosts. Типичный каталог имеет следующие каталоги верхнего уровня:

cgi-bin/
conf/
error_docs/
httpdocs/
httpsdocs/
...and so on

Вы хотите создать файл vhost.conf в папке conf / папки каталога домена со следующими строками:

php_value error_log /path/to/error_log
php_flag display_errors off
php_value error_reporting 6143
php_flag log_errors on

Измените первое значение, чтобы оно соответствовало вашей фактической установке (я использовал /tmp/phperrors.log). После того, как вы закончили редактирование файла vhost.conf, протестируйте конфигурацию из консоли с помощью:

apachectl configtest
…or if you don’t have apachectl (as Plesk 8.6 doesn’t seem to)…

/etc/init.d/httpd configtest

И, наконец, скажите Plesk, что вы внесли это изменение.

/usr/local/psa/admin/bin/websrvmng -a
3 голосов
/ 23 июня 2017

Если вы используете это с php file.php. Вам необходимо отредактировать php.ini Найти этот файл:

: locate php.ini
/etc/php/php.ini

и добавить путь к файлу к open_basedir свойству:

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/run/media/andrew/ext4/protected

2 голосов
/ 14 сентября 2017

У меня была эта проблема на одном из моих WordPress сайтов после обновления и / или перемещения:)

Проверьте в таблице базы данных «wp_options» значение «upload_path» и отредактируйте ее правильно ...

2 голосов
/ 04 августа 2011

, если у вас есть такая проблема с ispconfig3 и вы получили ошибку вроде этой

Действует ограничение open_basedir. Файл (/ var / www / clients / client7 / web15) находится за пределами допустимого Путь (ы): .........

Чтобы решить эту проблему (в моем случае), просто установите PHP на SuPHP на панели сайта ispconfig3

Надеюсь, это кому-нибудь поможет:

2 голосов
/ 04 декабря 2009

Путь, на который вы ссылаетесь, неверен, и не находится в директории Root вашего рабочего пространства. Попробуйте создать абсолютный путь к файлу, к которому вы хотите получить доступ, где вы, вероятно, теперь используете относительный путь ...

0 голосов
/ 04 апреля 2019

Если вы используете PHP IIS стек и у вас есть эта ошибка, это обычно быстрое исправление прав доступа.

Если вы сами управляете сервером Windows и имеете доступ, попробуйте сначала:

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

Посмотрите, какие пользователи имеют доступ к папке, какие только для чтения, а какие полные. У вас есть группа, которая блокирует запись?

Исправление будет зависеть от настроек IIS. Используете ли вы анонимную аутентификацию с определенным пользователем IUSR или с идентификатором пула приложений?

В любом случае, в конечном итоге вы добавите новое полное разрешение на запись для одного из IUSR, IIS_IUSRS или удостоверения вашего пула приложений - как я уже говорил, это будет зависеть от вашей настройки и того, как вы хотите сделайте это, вы можете пройти по кроличьей норе в Google (одно из таких сообщений - IIS_IUSRS и разрешения IUSR в IIS8 ) Для меня я использую anon с моей идентификацией пула приложений, чтобы я мог сойти с рук 1015 * с полным чтением / записью в любой папке temp или загрузки.

Мне не нужно ничего добавлять к моему open_basedir = в php.ini.

0 голосов
/ 09 августа 2018

Просто поиск

open_basedir =

в php.ini и отключите его. Это самое простое решение для решения этой проблемы.

До изменений open_basedir =

После изменений ;open_basedir =

P.s - После изменений не забудьте перезагрузить сервер.

Наслаждайся;)

0 голосов
/ 27 мая 2010

Измените настройки open_basedir в конфигурации PHP (см. Настройка времени выполнения ).

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

Пример настроек через .htaccess, если PHP работает как модуль Apache в системе Linux:

<DirectoryMatch "/home/sites/site81/">
    php_admin_value open_basedir "/home/sites/site81/:/tmp/:/"
</DirectoryMatch>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...