PHP推送通知权限被拒绝IOS

时间:2012-09-28 18:16:02

标签: php

我目前正在尝试使用php设置推送通知服务器。我有一些代码,如果我在命令行上运行它的工作原理。但是,当我通过Web浏览器访问相同的php文件来测试它给我一个权限被拒绝错误。

可能导致这种情况的原因,我相信apache一定有问题,但我不知道是什么。

编辑: 我认为这是一个SELinix问题,因为当我尝试运行脚本时,这些错误会出现在审计日志中。

type=AVC msg=audit(1348856835.712:48079): avc:  denied  { name_connect } for  pid=587 comm="httpd" dest=2195 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket
type=SYSCALL msg=audit(1348856835.712:48079): arch=40000003 syscall=102 success=no exit=-13 a0=3 a1=bfb8c910 a2=4514ad8 a3=10 items=0 ppid=584 pid=587 auid=0 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=2395 comm="httpd" exe="/usr/sbin/httpd" subj=unconfined_u:system_r:httpd_t:s0 key=(null)

3 个答案:

答案 0 :(得分:1)

事实证明,服务器关闭了SELinux boolean httpd_can_network_connect。一旦我打开它,脚本按预期工作。

答案 1 :(得分:0)

这几乎肯定是因为您的计算机上的apache(或nobody)用户没有足够的权限来执行php脚本应该执行的操作。你在谈论服务器端的权利吗?如果是这样,请删除那些苹果和iOS标签,因为它们无关紧要。

答案 2 :(得分:0)

您的VHOST配置是什么?您是否允许访问DocRoot目录?示例配置如下:

<VirtualHost *:80>
    ServerName your.server.com
    DocumentRoot /var/www/

    <Directory /var/www/>
        DirectoryIndex index.php
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>