Подтвердить что ты не робот

Socket транспорта "ssl" в PHP не включен

У меня возникли проблемы с включением переноса сокетов ssl в PHP. Когда я запускаю свой script, я получаю сообщение об ошибке:

Предупреждение: fsockopen() [function.fsockopen]: невозможно подключиться к ssl://www.my.site.com: 443 (Не удается найти транспортировку сокета "ssl" - вы забыли включить его когда вы настроили PHP?)

Я запускаю IIS6 в Windows, и это то, что я сделал до сих пор, чтобы попытаться заставить его работать:

  • uncommented расширения php_openssl.dll и php_sockets.dll в php.ini
  • удостоверился, что PHP загружает файл ini, в который я внес изменения (он определен и загружает другие расширения, поэтому я уверен, что это не проблема)
  • убедитесь, что php_openssl.dll и php_sockets.dll находятся в правильном месте.
  • скопировали ssleay32.dll и libeay32.dll в основную папку PHP, папку WINDOWS и папку WINDOWS/system32
  • удостоверился, что переменная пути Windows включала расположение PHP
  • удостоверился, что права на файл были правильными для всех соответствующих файлов.

Я перезапустил IIS после почти всех изменений, но мне не повезло. Есть ли что-то очевидное, что я делаю неправильно? Есть ли способ устранить это в небольших частях? (Итак, я могу выяснить проблему путем устранения...?)

К сожалению, Windows/IIS не являются моей областью знаний - я был назначен ответственным, потому что никто больше ничего не знает.

4b9b3361

Ответ 1

Успех!

После проверки файлов журнала и обеспечения правильности разрешений на php_openssl.dll, я просмотрел это предупреждение и нашел больше вещей, чтобы попробовать.

Итак, я:

  • добавлен C:\PHP\ext в путь Windows.
  • добавлены libeay32.dll и ssleay32.dll в C:\WINDOWS\system32\inetsrv
  • перезагрузили сервер

Я не уверен, какой из этих исправил мою проблему, но он определенно исправлен сейчас!:)

Я нашел эти вещи, чтобы попробовать на этой странице: http://php.net/manual/en/install.windows.extensions.php

Спасибо за вашу помощь!

Ответ 2

У меня возникла проблема в Windows 7 с PHP 5.4.0 в командной строке, используя сервер Xampp 1.8.1. Это то, что я сделал:

  • Переименуйте php.ini-production в php.ini (в папке C:\xampp\php \)
  • Изменить php.ini и раскомментировать extension_dir=ext.
  • Также раскомментируйте extension=php_openssl.dll.

После этого он работал нормально.

Ответ 3

В сервере XAMPP версии 1.7.4 не поддерживается расширение = php_openssl.dll в файле php ini. Мы должны добавить расширение = php_openssl.dll в файл php.ini

Ответ 4

В этой же проблеме возникла проблема с Laravel 4, пытающейся отправить электронную почту с использованием SSL-шифрования.

Имея WAMPServer 2.2 на Windows 7 64bit, я включил php_openssl только в php.ini, перезапущен WAMPServer и работал безупречно.

Сделал следующее:

  • Нажмите WampServer → PHP → Расширения PHP → php_openssl
  • Перезапустить WampServer

Ответ 5

Просто раскомментируйте extension = php_openssl.dll Перезапустите Apache Service, и это должно помочь.

Ответ 6

Я также столкнулся с этой проблемой сейчас, когда возился с laravel.

Я использую wampserver для Windows и должен был скопировать файл /bin/apache/apacheversion/bin/php.ini в/bin/php/phpversion/php.ini

Ответ 7

Я использую XAMPP и столкнулся с той же ошибкой. Я проделал все эти шаги, добавил путь к переменным окружения, скопировал все возможные каталоги в dll, в /php,/apache/bin,/system32,/syswow64 и т.д., Но все еще получил эту ошибку.

Затем, проверив журнал ошибок apache, я заметил проблему с использованием скобок в пути.

PHP: синтаксическая ошибка, неожиданная '(' в C:\Program Files (прочее)\xampp\php\php.ini в строке 707 0 сертификат сервера НЕ содержит идентификатор, соответствующий имени сервера

Если вы установили сервер в каталог "Program Files (x86)", такая же ошибка может возникнуть из-за не экранированных скобок.

Чтобы исправить это, откройте файл php.ini и найдите строку, содержащую "include_path", и заключите путь в двойные кавычки, чтобы исправить эту ошибку.

include_path = "C:\Program Files (другие)\xampp\php\PEAR"