Добавление разрешения на запись в PHP на IIS 7

Мне нужен PHP-скрипт, чтобы иметь разрешение на запись в каталоге. PHP 5.3 работает как FastCGI в IIS 7 с сервером Windows 2008 как OP. В моих журналах ошибок php я получил «разрешение отклонено», когда скрипт пытается записать файл.

Как я могу разобраться с этим? Я попытался предоставить все права на IIS_IUSR и IUSR_myservername (щелкнув правой кнопкой мыши по моей папке), но это не сработало.

Любая помощь была бы очень признательна,

С Уважением,

Julien

У меня такая же настройка, и я должен дать разрешение на запись:

'IUSR' и 'IIS AppPool \ AppPoolName'

Собственно, это немного сложнее.

Первое, что нужно сделать, это создать простой файл PHP на соответствующем веб-сайте. (Важно создать файл на соответствующем веб-сайте, потому что каждый веб-сайт может иметь другую настройку.) Содержимое этого файла должно быть:

 <?php var_dump(ini_get('fastcgi.impersonate')); ?> 

Перейдите к этому файлу с помощью браузера.

** Дело 1 **

Если ваш браузер показывает:

 string(1) "1" 

Затем вам необходимо выполнить следующую команду (вам нужно заменить «Веб-сайт по умолчанию» на имя, которое вы указали на свой веб-сайт в IIS):

 %windir%\system32\inetsrv\appcmd.exe list config "Default Web Site" ^ /section:anonymousAuthentication 

Вы получите ответ, который выглядит так:

 <system.webServer> <security> <authentication> <anonymousAuthentication enabled="true" userName="IUSR" /> </authentication> </security> </system.webServer> 

Информация, которую вы ищете, – это значение атрибута username тега anonymousAutthentification .

  • Если это значение не пусто, его содержимое – это имя пользователя, которому необходимо предоставить права на запись.
  • Если это значение пустое или если атрибут просто отсутствует, вам необходимо предоставить разрешения на запись в IIS AppPool\AppPoolName (замените «AppPoolName» на имя пула приложений вашего сайта).

** Случай 2 **

Если ваш браузер показывает:

 string(1) "0" 

Вам необходимо предоставить разрешения на запись в IIS AppPool\AppPoolName (замените «AppPoolName» на имя пула приложений вашего веб-сайта).

Вам нужно дать разрешение на PHP , а не IIS. Это означает, что учетная запись пользователя, на которой работает PHP, нуждается в разрешении (вероятно, тот же самый IIS работает).