首页 > 网站 > WEB服务 > 正文

php以fastCGI的方式运行在iis下 遇到的文件系统权限

2020-03-22 19:52:44
字体:
来源:转载
供稿:网友
  • 今天准备将一个php demo放在IIS下运行,网站在IIS下的配置是这样的:

    html' target='_blank'>应用程序池是集成模式下的.net framework 2.0(2.0或4.0没什么关系,因为php以fastCGI的方式在跑), 应用程序池标识配置为IIS内置的NETWORKSERVICE, 使用的认证方式为匿名身份验证。

    打开本地的网站,访问php页面, 出现了500错误。

    好吧,是权限问题,最简单的解决办法是把C:UsersAdministratorPhpstormProjectsphpDemo的权限设成Everyone, 并允许完全控制:

    重新访问php页面,成功了:

    上面的方法是够简单,但也太不安全了,平时本地搭个demo这样做没问题,真正上线的时候,这样做迟早出问题的。

    于是重新设置,把该目录下的只读权限赋给NETWRORKSERVICE帐号再试一下

    不过问题还是没有解决,访问的时候,出现了401错误

    错误信息中包括显示登录用户为匿名,检查了网站下的身份验证(再点击 匿名身份验证->编辑),原来网站默认情况下,在登录方法为匿名时,使用的默认登录用户为IUSR(就是我们看到的匿名登录用户了)

    那么解决办法就是:

    1. 将IUSR设置为C:UsersAdministratorPhpstormProjectsphpDemo的读权限,类似之前对NETWORKSERVICE的设置。

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

    经试验,方法1与2都成功。

    Note:NETWORKSERVICE在IIS7中隶属于iis_iusers用户组,之前对NETWORKSERVICE的设置也可以改为对iis_iusers的设置,同样也可以解决问题,只是权限被进一步放宽了而已。

    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表