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 没有问题,最后增加了一个完整路径的配置,以后不同环境增加一个配置,我把这个问题整理一下,以便给有类似问题的人一个解决思路吧。
posted @ 2017-05-26 18:15  梦中的太阳  阅读(1845)  评论(0编辑  收藏  举报