Я получаю эту ошибку при загрузке аватара на свой сайт. Я никогда не получал этого раньше, и в последнее время ничего не менялось, чтобы я начал получать эту ошибку ...
Warning: is_writable() [function.is-writable]:
open_basedir restriction in effect.
File(/) is not within the allowed path(s):
php
filesystems
Webnet
источник
источник
Ответы:
Измените
open_basedir
настройки в вашей конфигурации PHP (см. Конфигурация времени выполнения ).Этот
open_basedir
параметр в основном используется для предотвращения доступа сценариев PHP для определенного пользователя к файлам в учетной записи другого пользователя. Поэтому обычно любые файлы в вашей учетной записи должны быть доступны для чтения вашими собственными скриптами.Пример настроек,
.htaccess
если PHP работает как модуль Apache в системе Linux:<DirectoryMatch "/home/sites/site81/"> php_admin_value open_basedir "/home/sites/site81/:/tmp/:/" </DirectoryMatch>
источник
/my/cutsom/dir/
. Не уверен, почему подумал.php_admin_value
в.htaccess
файлах . Вы не можете использовать DirectoryMatch в файлах .htaccess . (Какие были бы меры безопасности,open_basedir
если бы его можно было просто отключить?)Измените настройки open_basedir в своей учетной записи хостинга и установите для них значение none. Найдите параметр open_basedir, указанный в области «Настройки PHP» вашего Plesk / cPanel. В раскрывающемся списке выберите значение «Нет». Я показал их на картинке панели Plesk.
источник
Чтобы устранить эту ошибку, вы должны отредактировать файл httpd.conf. Задолго до того, как это можно будет увидеть в phpinfo в директиве раздела apache2handler Server Root. Например, в моем случае это - / etc / httpd / httpd.conf. Откройте файл httpd.conf, найдите упоминание о параметре open_basedir. И установите значение «Нет». ( php_admin_value open_basedir нет )
источник
open_basedir
конфигурацию в своемphp.ini
. (Arch Linux на Raspberry Pi с php 5)Если вы используете это с
php file.php
. Вам необходимо отредактироватьphp.ini
Найти этот файл:И добавьте к
open_basedir
свойству путь к файлу :open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/run/media/andrew/ext4/protected
источник
Для меня проблема заключалась в неправильных / отсутствующих значениях конфигурации для сервера 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, что вы внесли это изменение.
источник
Путь, на который вы ссылаетесь, неверен и не входит в корневой каталог вашей рабочей области. Попробуйте создать абсолютный путь к файлу, к которому вы хотите получить доступ, где вы сейчас, вероятно, используете относительный путь ...
источник
если у вас есть такая проблема с ispconfig3 и вы получили такую ошибку
Чтобы решить эту проблему (в моем случае), просто установите PHP на SuPHP на панели веб-сайта ispconfig3.
Надеюсь, это кому-то поможет :)
источник
У меня была эта проблема на одном из моих сайтов WordPress после обновления и / или перемещения :)
Проверьте в таблице базы данных 'wp_options' 'upload_path' и отредактируйте его правильно ...
источник
Если используется ispconfig3:
источник
Если вы используете стек PHP IIS и имеете эту ошибку, обычно это быстрое исправление разрешений.
Если вы сами администрируете сервер Windows и имеете доступ, попробуйте СНАЧАЛА:
Перейдите к папке, в которую вам не нравится писать, и щелкните ее правой кнопкой мыши> открыть свойства> безопасность.
Посмотрите, какие пользователи имеют доступ к папке, у каких - только чтение, а у каких - полный. У вас есть группа, которая блокирует запись?
Исправление будет зависеть от вашей настройки IIS. Используете ли вы анонимную аутентификацию с определенным пользователем IUSR или с удостоверением пула приложений?
В любом случае вы собираетесь добавить новое полное разрешение на запись для одного из IUSR, IIS_IUSRS или идентификатора вашего пула приложений - как я уже сказал, это будет варьироваться в зависимости от вашей настройки и того, как вы хотите это сделать, вы можете спуститься в кроличью нору Google на этом (один такой пост - разрешения IIS_IUSRS и IUSR в IIS8 ) Для меня я использую anon с моим идентификатором пула приложений, поэтому я могу уйти
MACHINE_NAME\IIS_IUSRS
с полным чтением / записью при любой температуре или загрузке папки.Мне не нужно ничего добавлять к my
open_basedir =
в php.ini.источник
В дополнение к ответу @yogihosting , если вы используете DirectAdmin , выполните следующие действия:
admin
по умолчанию.Введите конфигурации, которые вы хотите изменить, в текстовом поле вверху страницы. Вам следует рассмотреть существующий файл конфигурации и изменить значения на его основе. Например, если вы видите, что
open_basedir
это установлено внутри<Directory>
, возможно, вам следует заключить свое изменение в связанный<Directory>
тег:<Directory "/path/to/directory"> php_admin_value open_basedir none </Directory>
После внесения необходимых изменений нажмите кнопку «Сохранить».
Однако есть и другой способ редактирования файла конфигурации:
Внимание : будьте осторожны и выполняйте следующие действия на свой страх и риск, так как вы можете столкнуться с ошибками или это может привести к простою. Рекомендуемый способ - предыдущий, поскольку он предотвращает неправильное изменение файла конфигурации и показывает ошибку.
/usr/local/directadmin/data/users
. Из перечисленных пользователей перейдите к одному, связанному с доменом, который вы хотите изменить.Вот
httpd.conf
файл. Сделайте с него бэкап:Теперь отредактируйте файл конфигурации в любом редакторе. Например, отредактируйте существующий
open_basedir
вnone
. Не пытайтесь что-либо убирать, иначе у вас могут возникнуть простои. Сохраните файл после редактирования.Перезапустите веб-сервер Apache одним из следующих способов (используйте
sudo
при необходимости):Если вы обнаружите какие-либо ошибки, замените основной файл конфигурации файлом резервной копии и перезапустите веб-сервер.
Опять же, первое решение является предпочтительным, и вам не следует пробовать второй метод в первый раз. Как указано в предупреждении, преимущество первого способа заключается в том, что он предотвращает сохранение плохо настроенных файлов.
Надеюсь, это поможет!
источник
Я использую Apache vhost -File для запуска PHP со специфическими для приложения ini-параметрами на моем сервере Windows. Поэтому я использую параметр -d команды php.
Я устанавливаю open_basedir для каждого приложения в качестве одной из этих опций.
Мне нужно было установить несколько URL-адресов как open_basedir, включая UNC-Path , и синтаксис для этого случая было немного сложно найти. Вы должны разделять пути точками с запятой, и если ваш первый путь начинается с буквы диска, вам, возможно, придется начинать список с точки с запятой. По крайней мере, у меня это работает.
Пример:
php.exe -d open_basedir=;d:/www/applicationRoot;//internal.unc.path/ressource/
источник
Просто ищи
в php.ini и отключите его. Это самое простое решение этой проблемы.
До изменений
open_basedir =
После изменений
;open_basedir =
Ps - После изменений не забудьте перезагрузить сервер.
Наслаждаться ;)
источник