【发布时间】:2017-01-24 10:21:36
【问题描述】:
我在 Win2012 R2 上将 PHP 应用程序从 IIS7 移动到 IIS8.5。该应用程序在其自己的应用程序池 (MyPortal) 中运行,并且需要子文件夹的写入权限才能创建 PDF。因此,我为本地计算机上的 IIS AppPool\MyPortal 分配了修改或完全控制权限,但是该应用程序仍然无法写入该文件夹。我发现允许它这样做的唯一方法是授予本地用户组的修改访问权限,我宁愿不这样做(尽管我别无选择 ATM)。
php-cgi.exe 进程在 MyPortal 身份下运行,但不知何故没有获得我在文件夹上分配给 MyPortal 用户的权限。 PHP进程正在执行一个简单的fopen命令$file = fopen($tmp_filename,"w");。
我看到了类似的帖子https://serverfault.com/questions/570033/iis-iusrs-and-defaultapppool-permissions-do-not-work,这表明它可能是权限缓存问题,通过重启解决了,但在这种情况下不起作用。
有什么建议吗?
【问题讨论】:
-
您的 IIS 网站匿名身份验证是如何设置的?以及您的应用程序池身份验证?最好是使用 Sysinternals 的 Process Monitor 和/或 Process Explorer 进行调试:technet.microsoft.com/en-us/sysinternals/bb545021.aspx,查找文件 I/O 操作和访问被拒绝错误。
标签: windows-server-2012-r2 iis-8.5 php-5.6