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 ブール値の httpd_can_network_connect がオフになっていることが判明しました。これをオンにすると、スクリプトは期待どおりに機能しました。

于 2012-09-28T18:38:45.440 に答える
0

これはほぼ間違いなく、あなたのマシンの apache (または nobody) ユーザーが、php スクリプトが行うべきことを行うのに十分な権限を持っていないことが原因です。サーバーサイドの話ですよね?もしそうなら、それらのappleと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 に答える