Отказано в разрешении PHP mkdir на Windows Server 2008 IIS 7 из-за атрибута только для чтения?

У меня возникла проблема с веб-сайтом PHP, работающим на IIS 7 в Windows Server 2008.

Есть одна строка кода, вызывающая mkdir, которая вызывает ошибку, и журнал ошибок читает:

«…отказано в разрешении…»

Я исключил все, что связано с правами доступа к папкам (. Я пробовал несколько групп :Все, Пользователи, IUSR, Сетевая служба и т. д., но безуспешно ).

Мне нужно знать, как работает mkdir, проверяет ли атрибут родительской папки только для чтения -?

Если так,тогда это может быть корнем проблемы, поскольку все папки в Windows Server 2008 помечены как «Только для чтения», а флажок неактивен --Microsoft говорит, что это «преднамеренно», но я думаю, что это действительно " плохой дизайн».

Пожалуйста помоги.

P.S. Строка кода, ошибки которой можно найти здесьhttps://github.com/LimeSurvey/LimeSurvey/blob/070d255ba381d7abcd231d7c9e0c7d11f5578c97/admin/templates.php#L1182это строка 1182.

РЕШЕНИЕ:

  • В конце концов, это была проблема с разрешениями!
  • Мы применили разрешения к неправильной папке (ударил рукой по лбу)
  • Есть две папки «Шаблоны» :/Templates и /Uploads/Templates
  • /Template — для шаблонов по умолчанию, тогда как /Uploads/Templates — для созданных пользователем -
  • Мы дали группе «Пользователи» разрешения r/w/execute/modify на папку /Uploads/Templates
  • В то время как ранее мы применяли разрешения к /Templates
  • Чтобы отладить это, я использовал echoдля вывода значения $target

. ИЗВЛЕЧЕННЫЕ УРОКИ:

  • Всегда читайте сообщение об ошибке -, в котором говорилось «отказано в доступе», и я не поверил этому
  • Не принимайте очевидное за истину -/Шаблоны не в той папке
  • Если в коде ошибка, отладьте код и не пытайтесь угадать проблему
  • Отладьте код, используя простые методы, такие как вывод значений переменных -, т.е. эхо
  • Послушайте большинство -большинство людей здесь были правы, говоря, что ЭТО ПРОБЛЕМА РАЗРЕШЕНИЙ!
  • Большинство ошибок имеют простое решение -не ищите что-то сложное

Награда присуждена @BOMEz из-за полезной цитаты из mkdir()документации, в которой указано, что я должен удвоить -права доступа. @BOMEz также предоставил индивидуальный ответ и пообщался со мной через комментарии, которые помогли.

13
задан Chris Cannon 27 June 2012 в 12:02
поделиться