首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用php执行shell脚本?

如何使用php执行shell脚本?
EN

Stack Overflow用户
提问于 2017-02-13 16:24:09
回答 4查看 5.6K关注 0票数 0

我试着用星号监听电话。

如果我想侦听事件,我必须使用以下命令启动服务,并将bash文件存储在/etc/rc.d/init.d/asterisk_ in _gui.bash中。

代码语言:javascript
复制
service asterisk_ipu_gui start

和i登录星号CLI,并使用以下命令检查状态

代码语言:javascript
复制
asterisk -vvvr
manager show connected

图片显示:

如果它有IP地址127.0.0.0 ->启动服务成功。

这是手册,现在我想使用PHP执行那个shell脚本。我怎么做这个?

我这样写我的代码,但它不会影响。

代码语言:javascript
复制
<?php
 $output1 = shell_exec('service asterisk_ipu_gui start');
 $output2 = shell_exec('asterisk -vvvr');
 $output3 = shell_exec('manager show connected');
echo "<pre>$output3</pre>";
?>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-02-13 16:38:06

尝尝这个。它在与登录相同的命令中发出命令,正如我在上面的评论中提到的那样:

代码语言:javascript
复制
 $output1 = shell_exec('service asterisk_ipu_gui start');
 $output2 = shell_exec('asterisk -vvvr "manager show connected"');

$output2现在应该保存您的预期结果。

另外,尝试将您的www-data用户添加到星号组中,这可能是由于权限和所有权问题造成的。如果您可以使用127.0.0.1在本地完成它,这意味着您的本地用户可以这样做,并且它可以工作,但是当php通过www-data尝试时,它就失败了。

票数 1
EN

Stack Overflow用户

发布于 2017-02-13 16:45:39

不要让php执行每个shell命令,而是尝试将所有命令放入一个shell脚本中,然后使用php执行该脚本。

您可以在asterisk.sh中使用命令

代码语言:javascript
复制
#!/bin/bash
service asterisk_ipu_gui start
asterisk -vvvr
manager show connected

现在用php执行它:

代码语言:javascript
复制
<?php 
$output = shell_exec('/home/user/scripts/asterisk.sh'); 
echo "$output"; 
?>
票数 1
EN

Stack Overflow用户

发布于 2017-02-13 16:30:16

您应该在每个命令后面加上echo。

代码语言:javascript
复制
<?php
$output1 = shell_exec('service asterisk_ipu_gui start');
echo "<pre>$output1</pre>";
$output2 = shell_exec('asterisk -vvvr');
echo "<pre>$output2</pre>";
$output3 = shell_exec('manager show connected');
echo "<pre>$output3</pre>";
?>

还可以查看手册,悲观地查看用户贡献的注释

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42208814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档