php无法执行system()函数的问题分析
PHP无法执行system()函数,可能有以后几种可能。
首先请开启错误时数,根据错误才好判断原因:打开php.ini中的 display_errors = On
在ISAPI模式下修改php.ini要重起WEB服务。
错误分析:
1、Warning: system() has been disabled for security reasons
该错误是由于服务器安全配置将system函数关闭了,编辑php.ini查找 disable_functions 将等号后面的 system 去掉即可。
2、Warning: system() [function.system]: Unable to fork
该错误是由于当前站点的运行帐号无法访问cmd.exe,找到windows\system32\cmd.exe 属性,安全,添加当前站点的运行帐号权限,或 users组权限即可。
3、在web访问下执行没有任何响应也不报错,使用php cli命令行执行却可以正常返回结果
该错误一般由于WINDOWS系统路径引起,你的程序中大概使用了绝对路径去访问程序比如:
system('D:\server\DLL\IECapt.exe --url=http://tech.cncms.com --out="D:\web\tt.fei.cn\htdocs\ttt\tech.png"');
此时用命令行执行结果OK,但用WEB访问就是空白也没错误。
修正方法,将文件的访问路径改为相对即可:
将IECapt.exe 复制到你的站点程序当前目录下,并将代码改为:
system('IECapt.exe --url=http://www.baidu.com --out=t/tech.png');
再次访问页面,OK,结果出来了。

解决方案 »

  1.   

    使用绝对路径,先用命令行跑,跑成功了再用代码跑
    还有和具体的语句和权限有关 但权限足够高就没问题...
    贴出语句看看是什么操作无法fork
    实在不行只好换个方法实现 
    比如执行一个写好的exe exe去做相关操作
      

  2.   

    我是用fp2.2将txt word pdf等转换成swf格式  所以要用的system函数  我在本地测试可以 放在服务器测试就报错Unable to fork
    已经给cmd.exe iusr权限了