宝哥软件园

php在fastCGI模式下运行时的文件系统权限问题及解决方案

编辑:宝哥软件园 来源:互联网 时间:2021-11-06

今天,我将在IIS下运行一个php演示。IIS下的网站配置如下:

应用程序池是。net framework 2.0在集成模式下(2.0或4.0无所谓,因为php是在fastCGI模式下运行的),应用池标识配置为IIS内置的NETWORKSERVICE,使用的身份验证方式为匿名身份验证。

打开本地网站,访问php页面,有500个错误。

好吧,这是权限的问题。最简单的解决方案是将C: 用户管理员 phpstormprojects phpdemo的权限设置为“所有人”,并允许完全控制:

再次访问php页面,成功了:

上面的方法很简单,但是太不安全了。平时在本地建个演示就可以了。真正上线的时候,迟早会出问题。

然后重置它,并将此目录中的只读权限分配给NETWRORKSERVICE帐户,然后重试。

然而,这个问题仍然没有解决。在访问期间,出现了401错误。

错误消息包括登录用户是匿名的,并且已经检查了网站下的身份验证(单击匿名身份验证-编辑)。默认情况下,当登录方式为匿名时,原网站使用的默认登录用户为IUSR(即我们看到的匿名登录用户)。

那么解决办法是:

1.将IUSR设置为c : users administrator phpstrom projects phpdemo的读取权限,类似于NETWORKSERVICE之前的设置。

2.或者选择使用应用程序池标识。

通过实验,方法1和方法2都是成功的。

注意:网络服务属于IIS7中的iis _ iusers用户组。以前的NETWORKSERVICE设置也可以改成IIS _ ius,也可以解决这个问题,但是权限进一步放宽。

以上就是本文的全部内容,希望大家喜欢。

更多资讯
游戏推荐
更多+