1

服务器:乌本托

星号版本:11.x

目录:/usr/share/asterisk/agi-bin/ 文件:call_handle.php

目录权限:755 root root 文件权限:755 root root

星号.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用户的执行权限

4

3 回答 3

3

可能的问题似乎是文件('/usr/share/asterisk/agi-bin/call_handle.php')不属于星号守护程序的用户组,即星号:星号

也就是说 - Asterisk 守护进程应该拥有这个文件的所有权。

其次,也有可能实际运行这个 Asterisk 守护进程的用户没有这个守护进程的执行权限。它应该在那里。

于 2015-01-17T06:24:49.020 回答
2

我自己得到了答案:在我的 php 脚本中设置 PHP 环境,它将由星号运行。

我在第一行的 php 文件中设置了以下内容:

#!/usr/bin/env php

参考:PHPAGI:执行格式错误

于 2015-01-17T10:00:05.220 回答
0

首先确保文件可以执行

chmod a+x /usr/share/asterisk/agi-bin/call_handle.php

之后检查 selinux 是否未启用或设置正确

在 Centos/Redhat 上禁用 selinux

 echo "SELINUX=disabled" > /etc/sysconfig/selinux 

之后需要重启

于 2015-01-17T09:16:09.707 回答