服务器:Ubunto
Asterisk版本:11.x
目录:/ usr / share / asterisk / agi-bin / 文件:call_handle.php
目录权限:755根root 文件权限:755 root root
的asterisk.conf
astagidir => /usr/share/asterisk/agi-bin
的extensions.conf
same => n,AGI(call_handle.php)
当我拨打任何号码时,会运行此AGI PHP脚本。 但是,它会在星号控制台中给我这个消息。
Asterisk Failed to execute '/usr/share/asterisk/agi-bin/call_handle.php': Permission denied
我不确定为什么会出现此消息。它具有 ROOT 用户
的执行权限答案 0 :(得分:3)
可能的问题似乎是文件('/usr/share/asterisk/agi-bin/call_handle.php')不属于星号的Asterisk守护程序用户组:asterisk
也就是说 - Asterisk守护程序应该拥有此文件的所有权。
其次,实际运行此Asterisk守护程序的用户也可能没有此守护程序的执行权限。它应该在那里。
答案 1 :(得分:2)
我自己得到了答案: 在PHP脚本中设置PHP环境,它将由星号运行。
我在第一行的php文件中设置了以下内容:
#!/usr/bin/env php
答案 2 :(得分:0)
首先确保文件可以执行
chmod a+x /usr/share/asterisk/agi-bin/call_handle.php
之后检查selinux未启用或设置正确
在Centos / Redhat上禁用selinux
echo "SELINUX=disabled" > /etc/sysconfig/selinux
之后需要重启