对于使用sudo而不是其他命令的某些命令,PHP exec正确返回

时间:2017-07-03 19:44:59

标签: php asterisk

当我在PHP脚本中发出以下内容时,我获得了成功的输出:

$peers_summary = exec('sudo asterisk -x "sip show peers"', $sip_peers);

$sip_peers包含exec命令的完整输出,列出了Asterisk提供的标准表格式的对等项。但是,当我发出:

$test = exec('sudo asterisk -x "sip show peer trunk-to-pbx"', $trunk);

$trunk完全为空:array(0) {},和 $test是一个空字符串:string(0) ""

trunk-to-pbx是我的Asterisk安装中的有效对等方,我已经确认在提示时发出sudo asterisk -x "sip show peer trunk-to-pbx"是成功的(sudo asterisk -x "sip show peers"),所以我&#39 ;我不确定为什么第二个命令从exec()返回空。我最初认为它可能是输出字符限制,但输出少于2,000个字符 - 不能是内存或限制问题。我尝试了set_time_limit(0),即使执行在提示时几乎是即时的。

为什么第二个exec()返回空?

1 个答案:

答案 0 :(得分:0)

问题不在Song(title: "Title 3", artist "Artist 3")exec()或我传递给asterisk的命令;有exec()文件白名单命令,我的命令需要包含在sudoers工作之前。继承的代码库。感谢 Chris Stryczynski ,感谢您的建议。