Я успешно запускаю код APNS в своем macbook-авизо, но, оказывается, я не могу запустить его на другом компьютере:
Я проверил, что они одинаковы: 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
Я попробовал telnet на сервере EC2, он дает:
telnet gateway.push.apple.com 2195 Trying 17.149.36.239... Connected to gateway.push-apple.com.akadns.net. Escape character is '^]'.
В случае MAC , (встроенный сервер работал нормально, используя терминал, но не через браузер, для меня, поэтому я установил MAMP.)
1.Go to —> / Library / WebServer / Documents / —- копировать как php, так и ckdev. pem файл здесь.
2 перейти к терминалу -> $ open / private / etc -> перейти к —> apache2> оригиналы> файл httpd.config -> ** "# LoadModule php5_module libexec / apache2 / libphp5.so" , удалить " # ".. (возможно, вам тоже придется менять разрешение ..!)
затем перейдите в браузер и проверьте -> localhost / yourPhpFile.php
В случае системы Windows ,
1.Установите WAMP ,
2.goto php.ini file —> найти строку " ; extension = php_openssl.dll " и удалить точку с запятой " ; ".
3.click значок WAMP с правой стороны goto PHP> Расширения PHP> выберите php_openssl ..
Вот и все … надеюсь, это может помочь дальнейшим искателям.
если вы получаете такую ошибку: «Не удалось найти перенос сокетов ssl» – вы забыли включить его при настройке PHP? » затем следуйте следующему шагу
если php не получил ssl enabled, то goto php.ini и измените это на "; extension = php_openssl.dll" "extension = php_openssl.dll" (удалите точку с запятой) и сохраните его и запустите программу.
Спасибо за помощь, до сих пор я решил решение.
Проблема в том, что я использовал один и тот же файл pem для моего сертификата и корневого сертификата.
Существует корневой сертификат, отличный от моего собственного сертификата, во время подключения используется оба сертификата, поэтому я должен получить корневой сертификат уведомления push-аба.
Благодаря!