0

昨夜からこれに対する答えを探していましたが、まったく同じ問題を抱えている人を見つけることができなかったようです. 似ていますが、そうではありません。stream_socket_client を介して Apples APNS に接続しようとしています。私はこれを LAMP 環境で作業しており、ポート 2195 を開いています。私のエラー文字列は(許可が拒否されました)と言います。私の問題は、このエラーについて多くのことを投稿した人を見つけることです。エラー報告から得られる警告は、警告: stream_socket_client(): ssl://gateway.sandbox.push.apple.com:2195 (アクセスが拒否されました) に接続できません

良いものについては。このプッシュ通知を処理するクラスを作成しました。接続を設定するための未完成の方法を次に示します。

 public function setConnection() {

        $apnsHost = 'gateway.sandbox.push.apple.com';
        $apnsPort = 2195;
        $apnsCert = '../model/apns-dev.pem';

        $streamContext = stream_context_create();
        stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
        stream_context_set_option($streamContext, 'ssl', 'passphrase', "********");
        stream_context_set_option($streamContext, 'ssl', 'verify_peer', true);

        $apns = stream_socket_client('ssl://'.$apnsHost.':'. $apnsPort, $error, $errorString, 20, STREAM_CLIENT_CONNECT , $streamContext);

    }

私にはこれは正しいように見えますが、明らかに何かが正しくありません。

4

2 に答える 2

3

SELinux Conf です

httpd_can_network_connect問題は、Fedora 12 でデフォルトでオンになっている SELinux 設定であることが判明しました。

シェル コンソールで、root として実行します。

/usr/sbin/setsebool httpd_can_network_connect=1

参照: http://www.rkrishardy.com/2009/12/permission-denied-13-when-opening-socket-in-php-apache/

于 2015-05-04T16:46:45.957 に答える
0

次のチュートリアルの simplepush.php コードはうまく機能しました。 http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);

// Open a connection to the APNS server
$fp = stream_socket_client(
    'ssl://gateway.sandbox.push.apple.com:2195', $err,
    $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
于 2012-04-05T09:07:30.870 に答える