gpt4 book ai didi

php - stream_socket_client 无法连接到 Apple APNS(权限被拒绝)

转载 作者:太空宇宙 更新时间:2023-11-03 13:27:56 26 4
gpt4 key购买 nike

我很少遇到通过 php 发送推送通知的情况,我无法弄清楚。我有一个简单的 php 脚本,可以发送如下所示的通知。如果我通过命令行 php script.php 执行这个文件,它就可以正常工作。如果我通过网络执行 http://domain.com/script.php它给我一个权限被拒绝的错误。我有正确的证书路径,而不是证书的密码。有什么想法吗?

警告:stream_socket_client():无法连接到 ssl://gateway.push.apple.com:2195(权限被拒绝)

    ...............

$apns = connect_apns('gateway.push.apple.com', '2195');
$write = send_payload($apns, $deviceToken, $payload);
fclose($apns);
}

function connect_apns($apnsHost, $apnsPort) {
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', 'cert.pem');
return stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 60, STREAM_CLIENT_CONNECT, $streamContext);
}

function send_payload($handle, $deviceToken, $payload) {
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;
return fwrite($handle, $apnsMessage);
}

最佳答案

所以在花了很多时间看这个之后,我注意到我启用了 Selinux。如果您想保持启用状态,您需要通过发出以下命令将属性 httpd_can_network_connect 设置为 true:setsebool -P httpd_can_network_connect 1。否则只需转到 vim/etc/selinux/config 并设置 SELINUX=disabled 即可禁用 selinux。

关于php - stream_socket_client 无法连接到 Apple APNS(权限被拒绝),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19666427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com