51dev.com IT技术开发者社区

51dev.com 技术开发者社区

windows 2003 php无法调用CutyCapt等外部程序解决办法

PHP互联网报道阅读(752)2017-06-02 收藏0次评论

  PHP无法使用函数调用外部程序可能有以下几种可能。为了更好的排查错误,首先请开启错误提示,我们根据错误才好判断原因:打开php.ini找到其中的display_errors=Off将Off修改为On即可。另外修改后可能不会生效,需要重启IIS。
错误提示分析:
    错误1、Warning:XXXXhasbeendisabledforsecurityreasons
    该错误是由于服务器安全配置将php函数关闭了比如excesystem等调用外部程序的函数,打开php.ini查找disable_functions将等号后面的execsystem等去掉即可。
    错误2、Warning:XXXX[function.system]:Unabletofork
    该错误是由于当前站点的运行帐号没有权限无法访问cmd.exe造成的,首先找到windows\system32\cmd.exe右键-属性-安全,添加当前站点的运行帐号权限(通常为IUSER_用户名),或users组权限即可。

    错误3、在web访问下执行没有任何响应也不报错,使用php函数执行其他命令却可能返回常返回结果,如system("ping你的网站域名"),但是调用外部程序的时候却是空白造成该错误的原因一般是由于WINDOWS系统路径引起,你的程序中大概使用了绝对路径去访问程序比如:system('D:/server/DLL/CutyCapt/CutyCapt.exe--url=你的网站域名--out="D:\web\tt.fei.cn\htdocs\ttt\tech.png"');用命令行执行该命令一切OK,但用WEB访问就是空白也没错误。我们只要将,将文件的访问路径改为相对即可:并将CutyCapt复制到你的网站程序的当前目录下,并将上面的代码改为:system('CutyCapt/CutyCapt.exe--url=你的网站域名-out=t/tech.png');再次访问页面,OK,结果出来了。
    错误4、以上三种方法都尝试以后,还是不能正常调用外部程序,请尝试打开错误提示如:system('CutyCapt.exe--url=你的网站域名--out=t/tech.png',$err);如果$err返回值为0表示执行成功,如果返回1则表示执行失败,一般遇到这种问题有可能是PHP没有执行CutyCapt.exe的权限,可以尝试将CutyCapt.exe加上Everyone这个权限并设置为完全控制再看是否执行成功,如果能执行成功那表示是权限问题,请加上运行帐号权限,另外也有可能是应用程序池的问题,打开IIS,右键应用程序池-》属性-》标识-》预定义账户-》本地系统,再重启IIS,应该就可以执行了!

以上就是 windows 2003 php无法调用CutyCapt等外部程序解决办法的全部内容,请多关注【51DEV】IT技术开发者社区。

相关内容