Мне нужен 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 работает).