php以fastCGI的方式运行在iis下,遇到的文件系统权限问题及解决方法

今天准备将一个php demo放在IIS下运行,网站在IIS下的配置是这样的:

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

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

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

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

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

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

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

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

那么解决办法就是:

1. 将IUSR设置为C:\Users\Administrator\PhpstormProjects\phpDemo的读权限,类似之前对NETWORKSERVICE的设置。

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

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

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

时间: 2024-12-09 05:09:27

php以fastCGI的方式运行在iis下,遇到的文件系统权限问题及解决方法的相关文章

Ubuntu系统下运行Eclipse出现找不到jre的问题的解决方法

在Ubuntu的某些版本下,比如10.10,会出现以下奇怪问题:1. 安装jdk我下载的jdk是bin格式的,直接运行解压,得到一个文件夹.这个文件夹作为jdk的安装目录,可以拷贝到任意目录.然后配置环境变量~/.bashrc,在最后添加:export JAVA_HOME=<jdk install dir>export JRE_HOME=$JAVA_HOME/jreexport PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH重启机器.2. 安装eclipse直接

IIS 500错误或无法显示此网页解决方法

不知道是不是XP版本的原故,发现越来越多的XP系统装好IIS后连默认网站都打不开,(其他系统没有注意)出现几个大字,IIS 500错误.相信碰到这个问题的人都深有体会,确实很烦人.卸了IIS重装也是不行.访问任何页面都是IIS 500错误.在网上搜索了一下,解决方法写的都不是很清楚,这一点那一点,昨天一朋友又遇到这个问题,所以今天打算写下来.以下流程是我详细测试过的,切莫颠倒次序执行,彻底搞定500错误. 建议在执行以下操作时先将IIS卸载,然后重启计算机,再将IIS安装. “开始”→“运行”→

[IIS][ASP.NET]“拒绝访问临时目录”的解决方法

除了设置windows临时目录权限外,还有一种原因:后来在应用程序池设置中将"加载用户配置文件"(Load User Profile)设置为true,问题就解决. [IIS][ASP.NET]"拒绝访问临时目录"的解决方法,布布扣,bubuko.com

关于各种文件用Editplus的方式打开出现“向程序发送命令时出现问题”的解决方法

其实网上有很多解决方法,但是我试过都没有用. 我出现这个错误的原因是因为我的Editplus是以管理员的方式运行的,所以解决的办法有两种: 一.修改Editplus的兼容性,方法如下: 首先在Editplus快捷方式上右击,然后点击属性 之后选择兼容性 然后把这一项的勾去掉,然后确定即可. 二.不修改Editplus的兼容性,方法如下: 首先打开Editplus快捷方式,这个时候打开的方式任然还是以管理员的方式运行,然后我们再打开文件-打开,然后就自己搜索要打开的文件, 这样子就成功了,不会出现

IIS ADMIN不能启动,提示错误代码-2146893818的解决方法

主要错误原因是因为'C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys' 文件夹下keys被破坏了,修改一下名称就可以了. 该文件夹默认为隐藏,你可以直接在我的电脑里输入该路径. 在文件夹下至少有两个文件,如下格式: c23***********************_MachineGUID 7a4***********************_MachineGUID 当出现

IIS报错:Exception from HRESULT: 0x8007000B解决方法

报错如下: System.Web.Services.dll 中发生,但未在用户代码中进行处理 其他信息: 服务器无法处理请求. ---> 尝试加载 Oracle 客户端库时引发 BadImageFormatException.如果在安装 32 位 Oracle 客户端组件的情况下以 64 位模式运行,将出现此问题. ---> 试图加载格式不正确的程序. (Exception from HRESULT: 0x8007000B) 这个是去IIS里找到对应的项目,更改

运行eclipse弹出“Failed to load the JNI shared”解决方法

听周围的人说,看网上的人说eclipse有多么神奇.我不禁好奇万分,于是自己就去eclipse官网下载一个软件.咱也来用用,满怀兴奋的心情,一运行eclipse结果 出现下图的错误提示:“Failed to load the JNI shared library jvm.dll”错误:心情瞬间就一落万丈,又想揍人的冲动.带着闷闷的心情,在网上东找西找,找 大神求助.终于在折腾一个多小时之后,泪流满面的运行起eclipse. 分析问题: 当我们看到如上图图的“Failed to load the

IIS服务器修改文件提示权限不足的解决办法

最近做项目的经历,当我们在本地计算机上通过部署在IIS上的程序去操做文件时,在本地执行没有问题,但是部署到服务器上提示"没有权限"等等. 由于用云服务器时间不长,不是很懂,就细心研究了一下,幸好还懂一点,知道大致是什么原因,就google了一下, 详细的解决办法是: 1.找到你需要操作的文件的根文件夹,右键点击属性 点击安全->点击编辑 点击添加按钮 点击高级按钮,点击查找按钮,选中IIS_IUSRS 修改IIS_IUSRS权限,给IIS_IUSRS赋予修改权限,就可以了. 自己

IIS不支持WebAPI Put和Delete,解决方法

环境windows10+IIS 10 把 托管模式 设置为 集成 web.config设置如下 <?xml version="1.0" encoding="UTF-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访问 https://go.microsoft.com/fwlink/?LinkId=301879 --> <configuration> <appSettings> <add k