我试着用星号监听电话。
如果我想侦听事件,我必须使用以下命令启动服务,并将bash文件存储在/etc/rc.d/init.d/asterisk_ in _gui.bash中。
service asterisk_ipu_gui start和i登录星号CLI,并使用以下命令检查状态
asterisk -vvvr
manager show connected图片显示:

如果它有IP地址127.0.0.0 ->启动服务成功。
这是手册,现在我想使用PHP执行那个shell脚本。我怎么做这个?
我这样写我的代码,但它不会影响。
<?php
$output1 = shell_exec('service asterisk_ipu_gui start');
$output2 = shell_exec('asterisk -vvvr');
$output3 = shell_exec('manager show connected');
echo "<pre>$output3</pre>";
?>发布于 2017-02-13 16:38:06
尝尝这个。它在与登录相同的命令中发出命令,正如我在上面的评论中提到的那样:
$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尝试时,它就失败了。
发布于 2017-02-13 16:45:39
不要让php执行每个shell命令,而是尝试将所有命令放入一个shell脚本中,然后使用php执行该脚本。
您可以在asterisk.sh中使用命令
#!/bin/bash
service asterisk_ipu_gui start
asterisk -vvvr
manager show connected现在用php执行它:
<?php
$output = shell_exec('/home/user/scripts/asterisk.sh');
echo "$output";
?>发布于 2017-02-13 16:30:16
您应该在每个命令后面加上echo。
<?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>";
?>还可以查看手册,悲观地查看用户贡献的注释
https://stackoverflow.com/questions/42208814
复制相似问题