JuC*_*lot 36 php iis-7 file-permissions windows-server-2008
我需要一个PHP脚本才能在目录中拥有写入权限.PHP 5.3在IIS 7下运行为FastCGI,Windows Server 2008为OP.在我的php错误日志中,当脚本尝试写入文件时,我得到"权限被拒绝".
我该如何解决这个问题?我试图将所有权利交给IIS_IUSR和IUSR_myservername(右键单击我的文件夹),但它没有用.
任何帮助都会非常感激,
问候,
朱利安
tom*_*umb 69
我有相同的设置,我必须给予写入权限:
IUSRIIS AppPool\<<AppPoolName>>Tri*_*IER 26
实际上,它有点复杂.
首先要做的是在相关网站上创建一个简单的PHP文件.(在相关网站上创建文件很重要,因为每个网站都可以有不同的设置.)此文件的内容应为:
<?php var_dump(ini_get('fastcgi.impersonate')); ?>
Run Code Online (Sandbox Code Playgroud)
使用浏览器导航到此文件.
**情况1**
如果您的浏览器显示:
string(1) "1"
Run Code Online (Sandbox Code Playgroud)
然后,您需要执行以下命令(您需要使用您在IIS中为您的网站指定的名称替换"默认网站"):
%windir%\system32\inetsrv\appcmd.exe list config "Default Web Site" ^
/section:anonymousAuthentication
Run Code Online (Sandbox Code Playgroud)
您将收到如下答案:
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="true" userName="IUSR" />
</authentication>
</security>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
您要查找的信息是标记username属性的值anonymousAutthentification.
IIS AppPool\AppPoolName(将"AppPoolName"替换为网站应用程序池的名称).**案例2**
如果您的浏览器显示:
string(1) "0"
Run Code Online (Sandbox Code Playgroud)
您需要授予写入权限IIS AppPool\AppPoolName(将"AppPoolName"替换为您网站的应用程序池的名称).
您需要提供PHP写入权限,而不是IIS.这意味着运行PHP的用户帐户需要权限(可能与运行IIS的用户帐户相同).