iis php exec只能执行一次,IIS+php环境无法执行exec、system解决方案

IIS+php环境无法执行exec、system解决方案

环境: windows 2008 server R2 IIS

问题: 我们常需要php去执行外部程序,比如python脚本,bat批处理文件,但是新手因为不会配置环境,用了exec、system函数也是不能执行,我刚开始也是遇到这个坑,也看了很多微博,现在总结一下,从一下几个思路中进行解决;

1,首先要确保php的配置文件php.ini文件没有禁用exec、system等功能,如果禁用了要把它去除(打开php.ini文件,把里面的disable_functions = 后面全部删除掉),再查看php.ini文件里面的safe_mode(安全模式)是否等于Off。等于On的话要把他改成Off。改完重启服务器/电脑。

2: 因为iis是网络用户,因此需要设置cmd的用户权限,进入C:\Windows\System32,找到cmd.exe,然后右键->属性->高级->所有者->编辑,选择 所有者更改为下面的“Administrator”,然后一直确认完成。关闭cmd属性窗口,然后再重新找到cmd.exe,然后右键->属性->安全->编辑->添加,然后输入IIS_IUSRS,然后点击检查名称,然后一直确认到完成。最后关闭cmd属性窗口。

3: 打开IIS管理器,进入IIS的应用程序池,把标识改为LocalSystem , IIS默认的是ApplicationPoolIdentity。(具体是选择右边列表,右击点击高级设置,把里面的标识ApplicationPoolIdentity或者其他的,换成LocalSystem就可以了,全部换了)

gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==

4: 增加网站权限,因为程序需要写入数据,点击你的网站,选择网站右击选择,编辑权限,然后点击 安全->编辑->添加->然后输入IIS_IUSRS,然后点击检查名称,然后一直确认到完成。给你需要写入数据的目录增加你的网络用户权限读写,编辑好记得重启服务器/电脑

gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==

5:如果前面还不能解决房问题,确认一下执行程序的位置,因为IIS采用的网络用户执行,因此系统的环境与普通验证用户不同,把需要执行的程序路径写完整了,不要采用相对路径;往往可以解决问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值