0

我目前正在尝试使用 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)
4

3 回答 3

1

事实证明,服务器关闭了 SELinux 布尔值 h​​ttpd_can_network_connect。一旦我打开它,脚本就会按预期工作。

于 2012-09-28T18:38:45.440 回答
0

这几乎肯定是您机器上的 apache(或nobody)用户没有足够的权限来执行 php 脚本应该执行的任何操作的结果。你说的是服务器端吧?如果是这样,请删除那些不相关的苹果和 iOS 标签。

于 2012-09-28T18:19:19.233 回答
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>
于 2012-09-28T18:33:04.663 回答