У меня есть несколько звонков на is_dir
на странице. Всегда работали без проблем.
Несколько дней назад хостинговая компания обновила PHP с 5.2 до 5.3. С тех пор все мои звонки на is_dir
приводили к следующему сообщению об ошибке ():
Warning: is_dir(): open_basedir restriction in effect.
File(/home/virtual/domain.com/public_html/galleries/img/002.JPG/)
is not within the allowed path(s):
(/home/virtual/domain.com:/home/virtual/_tmp)
in /home/virtual/domain.com/public_html/index.php on line 201
Это меня озадачивает.
Очевидно, согласно сообщению об ошибке (и php_info
, а также ), каталог/home/virtual/domain.com
(без завершающей косой черты, поэтому включение подкаталогов )включено/включено в open_basedir
, а файлы, которые is_dir
пытается перебрать, находятся во вложенных папках этой папки. Так почему же тогда они не входят в разрешенные пути? Ясно, что они!
Достаточно странно,эта ошибка появляется только тогда, когда is_dir
возвращает false, т. е. когда файл не папка, а обычный файл. Кажется, что все каталоги перебираются без ошибок.
Аналогичный вопрос ранее размещался здесь:Открыть _на основе нечетности ограничения(решение не найдено ).
У кого-нибудь есть идеи?
(Примечание. :Изменение настроек PHP невозможно, так как это общий хост, и у меня нет прав администратора)