关于php执行shell脚本

PHP提供共了3个专门的执行外部命令的函数:system(),exec(),passthru()。

本文主要以exe()函数为例,说明php执行shell脚本的实现方法和调试。

当我们在php脚本中使用函数exec('sudo sh /var/www/test.sh'),实际结果是如此操作展现给我们的是空白结果,并且test.sh没有执行,此时就需要加参数来进行调试了。

php中修改函数如下:


exec('sudo sh /var/www/test.sh 2>&1',$res,$status);
var_dump($res);
echo '<br >';
echo $status;

当$status的值为0时,脚本才执行正常的,错误信息都保存在了$res中。

错误信息为:“sudo: sorry, you must have a tty to run sudo

意思就是sudo默认需要tty终端。注释掉就可以在后台执行了。

chmod u+w /etc/sudoers

vi /etc/sudoers (最好用visudo命令)

注释掉 Default requiretty 一行

#Default requiretty

#把www权限加进去

www ALL=NOPASSWD:ALL

chmod u-w /etc/sudoers





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值