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


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

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

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

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

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

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

Author: Michael Irigoyen, 2009-11-10

6 answers

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

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

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

 66
Author: cikatomo, 2013-05-26 14:50:19

Успех!

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

Поэтому я:

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

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

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

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

 21
Author: jelina, 2009-11-11 02:31:57

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

 8
Author: Selvakumar, 2013-01-07 07:19:29

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

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

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

  • Нажмите WampServer -> PHP ->расширения PHP ->php_openssl
  • Перезапустить сервер WAMP
 7
Author: Marko Aleksić, 2013-05-15 17:09:03

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

 7
Author: Yogesh Unavane, 2014-01-01 15:37:16

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

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

 1
Author: Dale, 2012-11-28 09:14:53