调用php服务器sh处理,php调用shell脚本(web端和客户端同时实现)

想这个问题有一段时间了,一开始想实现的功能是在web端点击一个按钮,然后liunx主机采集图像,在浏览器上显示。于是自然而然的想到了php调用shell脚本。查了很多资料。实现了。

下面开始讲解。本例子将实现点击链接,调用shell脚本(ps,我写的脚本是一个上传文件到ftp服务器的命令)

一:配置

查看php.ini中配置是否打开安全模式,主要是以下三个地方

safe_mode =  (这个如果为off下面两个就不用管了)

disable_functions =

safe_mode_exec_dir=

ps1:博主按照上面的步骤配置,后来执行时还有问题。

我们再次查看php.ini文件,找到disable_functions =scandir,passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen

这些都是被禁用的函数,我们接下来会用到passthru函数,所以把passthru删掉,然后保存,重启服务

ps2:  后来又出问题了,因为一开始在centos上web端执行shell是没有问题的,可是到了ubuntu却执行不了,但是fswebcam软件在ubuntu上才有,于是最后通过一个灵活的途径执行了一条采集图像命令,而没有通过shell。后面代码会写到。

二:代码

到了愉快的代码环节,

首先我们把shell脚本写了,我简单写了个脚本。各位自己随便写一个吧,如果想知道我写的脚本,请参考shell实现ftp命令,或者去访问这个香蕉派摄像头监控

然后及时php代码了。

这是centos上的

passthru('/usr/local/bin/ftp.sh',$returnvalue);

if ($returnvalue != 0){

//we have a problem!

echo "wrong";

//add error code here

}else{

//we are okay

echo "ok";

//redirect to some other page

}

?>

然后在浏览器或者linux主机上运行php即可,(实现点击调用php,自己写一个html即可)

这是ubuntu上的

$a='sudo fswebcam -d/dev/video0 -r 320x240 /home/wwwroot/default/lot/1.jpg

';

system($a); //是这么执行的

三:运行实例

我就直接给图片了,第一张是代码,第二张那个乱码文件名就是我成功上传的文件。

0a84390245470c6da2677d3180f6df9c.png

99dc64028d9dff01e22350fcf040d08d.png

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值