8

我成功地在我的 macbook air 中运行了 APNS 代码,但事实证明我无法在我的另一台计算机上运行它:

我检查了这些是否相同:1. .pem 文件(具体而言) 2. 程序

电脑不能工作的有:

Windows 7,XAMPP,OpenSSL 支持,无防火墙

EC2 Linux 服务器开启了 2195 和 2196

导致我在 php 代码中出现此错误的其他问题可能是什么?

Unable to connect to 'ssl://gateway.sandbox.push.apple.com:2195'

我知道没有打开 SSL 可能是原因,但我检查了 phpInfo(),它应该是正确的。

openssl 

OpenSSL support enabled 
OpenSSL Library Version OpenSSL 1.0.1c 10 May 2012 
OpenSSL Header Version  OpenSSL 0.9.8x

我在 EC2 服务器上尝试了 telnet,它给出了:

telnet gateway.push.apple.com 2195
Trying 17.149.36.239...
Connected to gateway.push-apple.com.akadns.net.
Escape character is '^]'.
4

3 回答 3

2

MAC的情况下,(对我来说,内置服务器使用终端工作正常,但不能通过浏览器工作,所以我安装了 MAMP。)

1.转到---> /Library/WebServer/Documents /----复制phpckdev。pem文件在这里。

2 转到终端--> $open /private/etc-->转到--->apache2>originals>httpd.config 文件--> **"#LoadModule php5_module libexec/apache2/libphp5.so",删除" # "..(也许,您还必须更改权限..!)

然后转到浏览器并检查 - > localhost/yourPhpFile.php

Windows 系统的情况下,

1.安装WAMP ,

2.转到php.ini文件--->搜索此“ ;extension=php_openssl.dll ”行并删除分号“ ; ”。

3.从右下角点击 WAMP 图标转到PHP>PHP Extensions>select php_openssl ..

就是这样..希望这可以帮助更多的寻求者。

于 2014-06-03T09:28:51.307 回答
1
  1. 如果您收到类似“无法找到套接字传输“ssl”的错误 - 您在配置 PHP 时是否忘记启用它?” 然后进行下一步

  2. 如果 php 没有启用 ssl,则转到 php.ini 并将其更改为 ";extension=php_openssl.dll" "extension=php_openssl.dll"(删除分号)并保存并运行程序。

于 2013-04-17T12:27:37.967 回答
1

感谢您的帮助,到目前为止我已经解决了解决方案。

问题是我为我的证书和根证书使用了相同的 pem 文件。

有一个与我自己的证书不同的根证书,在连接过程中,两个证书都被使用,所以我必须获取苹果推送通知的根证书。

谢谢!

于 2013-04-26T10:08:32.273 回答