Open_basedir. Файл (/) не находится в пределах допустимых путей:
Я получаю эту ошибку при загрузке аватара на моем сайте. Я никогда этого не делал раньше, и в последнее время ничего не изменилось, чтобы я начал получать эту ошибку...
Warning: is_writable() [function.is-writable]:
open_basedir restriction in effect.
File(/) is not within the allowed path(s):
Ответы
Ответ 1
Измените open_basedir
настройки в вашей конфигурации PHP (см. Конфигурация времени выполнения).
Параметр open_basedir
в основном используется для предотвращения скриптов PHP для определенного пользователя для доступа к файлам в другой учетной записи пользователя. Как правило, любые файлы в вашей учетной записи должны быть прочитаны вашими собственными скриптами.
Пример настроек через .htaccess
, если PHP работает как модуль Apache в системе Linux:
<DirectoryMatch "/home/sites/site81/">
php_admin_value open_basedir "/home/sites/site81/:/tmp/:/"
</DirectoryMatch>
Ответ 2
Измените параметры open_basedir в своей учетной записи хостинга и установите их равными нулю. Найдите параметр open_basedir, указанный в разделе "Настройки PHP" вашего Plesk/cPanel. Установите его в "none" из раскрывающегося списка, указанного там.
Я показал их на рисунке панели Plesk.
Ответ 3
Чтобы устранить эту ошибку, вы должны отредактировать файл httpd.conf.
Путь до того, как его можно увидеть в phpinfo в директиве раздела apache2handler Server Root.
Например, в моем случае этот путь -/etc/httpd/httpd.conf.
Откройте файл httpd.conf, найдите упоминание параметра open_basedir. И никого не установили. (php_admin_value open_basedir none)
Ответ 4
Для меня проблема была в неправильных/отсутствующих конфигурационных значениях для сервера 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/folder каталога домена со следующими строками:
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
Ответ 5
Если вы используете это с 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
Ответ 6
Путь, на который вы ссылаетесь, является инцедентом, а не с каталогом вашей рабочей области. Попробуйте создать абсолютный путь к файлу, к которому вы хотите получить доступ, где теперь вы, вероятно, используете относительный путь...
Ответ 7
если у вас есть такая проблема с ispconfig3 и получена ошибка, подобная этой
open_basedir ограничение действует. Файл (/var/www/clients/client7/web15) не разрешен Путь (ы):.........
Чтобы решить эту проблему (в моем случае), просто установите PHP на SuPHP на панели веб-сайта ispconfig3
Надеюсь, это поможет кому-то:)
Ответ 8
У меня была эта проблема @на одном из моих сайтов wordpress после обновления и/или перемещения:)
Проверьте в таблице базы данных 'wp_options' 'upload_path' и отредактируйте ее правильно...
Ответ 9
Если вы работаете со стеком PHP IIS и имеете эту ошибку, обычно это быстрое исправление прав доступа.
Если вы сами управляете сервером Windows и имеете доступ, попробуйте следующее:
Перейдите к папке, которая вызывает у вас затруднения при записи, и щелкните правой кнопкой мыши по ней> открыть свойства> безопасность.
Посмотрите, какие пользователи имеют доступ к папке, какие только для чтения, а какие полные. У вас есть группа, которая блокирует запись?
Это исправление будет зависеть от настроек IIS. Используете ли вы анонимную аутентификацию с определенным пользователем IUSR или с идентификатором пула приложений?
В любом случае, в конечном итоге вы добавите новое полное разрешение на запись для одного из IUSR, IIS_IUSRS или удостоверения вашего пула приложений - как я уже сказал, это будет зависеть от вашей настройки и того, как вы хотите это сделать, Вы можете пройти по этой "дыре кролика" в Google (один из таких постов - разрешения IIS_IUSRS и IUSR в IIS8). Для меня я использую anon с идентификатором пула приложений, поэтому я могу использовать MACHINE_NAME\IIS_IUSRS
с полным чтением/записью на любом Temp или загрузить папки.
Мне не нужно добавлять ничего дополнительного к моему open_basedir =
в php.ini.
Ответ 10
Только поиск
open_basedir =
в php.ini и отключите его. Это самое простое решение для решения этой проблемы.
До изменений open_basedir =
After Changes ;open_basedir =
Ps - После изменений не забудьте перезагрузить сервер.
Наслаждаться ;)