项目需要php解压一个.rar文件.代码如下
<?php $c='winrar.exe x D:\\wwwroot\\test\\a.rar -y D:\\wwwroot\\test\\a\\'; $ss=system($c,$msg); var_dump($msg);
本地测试通过. 但在部署到服务器后解压失败!
由于服务是 win2012+II7.5+php 与本地的环境不同. 我认为是php没有执行winrar.exe的权限.
测试
由于在powerShell中执行php脚本有更高的权限.我在powerShell中测试权限的问题
C:\>c:\php\php.exe D:\wwwroot\test\t.php
int(0)
int(0)
执行成功!
给winrar.exe添加 iis应用程序池的权限
访问页面依然失败.
我 ~_~ 抽烟...喝水....上厕所.....
powerShell 中 会受到[环境变量]的影响.而IIS中应该不会用.
使用全路径试试.
<?php $c='C:\\Program Files\\WinRAR\\winrar.exe x D:\\wwwroot\\test\\a.rar -y D:\\wwwroot\\test\\a\\'; $ss=system($c,$msg); var_dump($msg);
C:\>c:\php\php.exe D:\wwwroot\test\t.php 'C:\Program' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 int(1)
应该是"Program Files"中有空格.shell 没能正确的解析命令
修改
<?php $c='"C:\\Program Files\\WinRAR\\winrar.exe" x D:\\wwwroot\\test\\a.rar -y D:\\wwwroot\\test\\a\\'; $ss=system($c,$msg); var_dump($msg);
C:\>c:\php\php.exe D:\wwwroot\test\t.php int(0)
执行成功!
优化代码
<?php // %ProgramFiles%=C:\Program Files // %ProgramFiles(x86)%=C:\Program Files (x86) // %ProgramW6432%=C:\Program Files $c='"%ProgramW6432%\\WinRAR\\winrar.exe" x D:\\wwwroot\\test\\a.rar -y D:\\wwwroot\\test\\a\\'; $ss=system($c,$msg); var_dump($msg);
总结:
- 简单来说我掉进了在win+IIS中执行shell的坑.
- 使用 命令行执行php可以看到 shell 错误信息.而网页不行.
- php 在 win+IIS 环境中确实有权限的问题,但不能一概而论. 要具体分析问题
- 多写博客. 在写博客中分析自己遇到的问题与调试的思路不同.有助于提高水平.
相关推荐
IIS+PHP+MYSQL安装配置.doc IIS+PHP+MYSQL安装配置.doc
WEB服务器IIS便携安装包.EXEWEB服务器IIS便携安装包.EXEWEB服务器IIS便携安装包.EXEWEB服务器IIS便携安装包.EXE
IIS6.0的提权工具包,建议配合菜刀工具食用,其他的Webshell管理工具不好用 工具包包含:iis6.exe,iislpe.exe,cmd.exe 之前不小心设置了动态调分 导致付费了 现在改成静态分
IIS+PHP+MYSQL+DISCUZ安装教程.pdf
通过asp脚本连接access数据库,利用了echarts的JS展现出大数据图表。包含了一个iis迷你服务器,可以极简约地实现数据库中的数据用各种图形展现,还提供图片下载。有意思的一个新老技术结合。
IIS+php+Zend+MySQL.doc配置教材
win7下安装IIS+php+mysql+phpmyadmin.pdf
IIS6最完整版(例如cfgwiz.exe,owsrmadm.exe,fpcount.exe等)
cmd.exe和iis6.exe(win32位可用)密码cm99 请用于正当用途
iis6.exe提权工具,iis6.exe提权工具,iis6.exe提权工具,iis6.exe提权工具iis6.exe提权工具
iis51.exe
Win服务器IIS6+MySQL+PHP+ASP+ZEND配置教程.doc
win2008r2+iis+php+sqlserver微软驱动SQLSRV31.EXE,php链接sqlserver2008用
用户解决php.exe 执行闪退,php运行所必须资源 microsoft visual c++ 运行库是一款windows系统必备的基础运行库。microsoft visual c++ 运行库在系统中承担着不可或缺的作用,一旦缺失这个组件库,用户就会面临软件...
Windows7+IIS+PHP+MySQL环境搭建.pdf
windowsserver2003服务器的详细环境配置IIS+php+mysql.pdf
win7中配置iis7.5+php+mysql+zend+phpmyadmin.doc )