Транспортный сокет "ssl" в PHP не включен - PullRequest
53 голосов
/ 10 ноября 2009

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

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

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

  • раскомментировал расширения 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 не моя область знаний - меня взяли на себя ответственность, потому что никто больше ничего не знает.

Ответы [ 7 ]

67 голосов
/ 18 ноября 2012

У меня были проблемы в 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.

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

21 голосов
/ 11 ноября 2009

Успех!

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

Итак, я:

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

Я не уверен, что из них решило мою проблему, но теперь это точно решено! :)

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

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

8 голосов
/ 07 января 2013

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

7 голосов
/ 01 января 2014

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

7 голосов
/ 15 мая 2013

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

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

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

  • Нажмите WampServer -> PHP -> PHP-расширения -> php_openssl
  • Перезапустить WampServer
1 голос
/ 28 ноября 2012

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

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

.
0 голосов
/ 12 января 2019

Я использую 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"

...