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