IIS 执行系统程序权限
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IIS 执行系统程序权限相关的知识,希望对你有一定的参考价值。
环境: windows 2008 server R2 IIS7.5 fastcgi
问题: 原来的程序采用Apache 运行,现在移植到IIS 上,原来的在程序中调用生成图片的系统程序出现不能执行问题,也看了很多微博,现在总结一下,从一下几个思路中进行解决;
因为原来的程序是执行正常的,因此主要是环境的变化导致的,所以排除程序问题,主要是从权限不同考虑。
1: 在查询里看一下执行的用户是谁。
exec( "whoami" , $output , $ret );
显示一下$output 的信息,可以确认一下,iis执行的时候,用户是谁。
$ret 如果是 1 , 则说明执行有错误, 0 则执行正常。2: 因为apache 是从系统用户运行的,iis是网络用户,因此需要设置cmd的用户权限,位置在c:/windows/system32/cmd.exe , 增加IUSR的可执行权限;
增加了此用户还是不能正常运行;
3: 配置IIS的应用程序池,把标识改为LocalSystem , IIS默认的是ApplicationPoolIdentity
4: 增加网站权限,因为程序需要写入数据,点击你的网站,又上角有一个编辑权限,给你需要写入数据的目录增加你的网络用户权限读写,一般为IUSR用户。
5:如果前面还不能解决房问题,确认一下执行程序的位置,因为IIS采用的网络用户执行,因此系统的环境与普通验证用户不同,把需要执行的程序路径写完整了,不要采用相对路径;往往可以解决问题。
我的这个问题上摸索了一个上午,最后在第五部的时候把问题解决了,在我本地windows7 没有问题,最后增加了一个完整路径的配置,以后不同环境增加一个配置,我把这个问题整理一下,以便给有类似问题的人一个解决思路吧。
以上是关于IIS 执行系统程序权限的主要内容,如果未能解决你的问题,请参考以下文章