2009-11-10 3 views
52

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

Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://www.my.site.com:443 (Unable to find the socket transport "ssl" - did you forget to enable it when you configured 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 не являются моей областью знаний. Меня зовут, потому что никто больше ничего не знает.

+1

Как вы смотрите php.log, если вы не включили ведение журнала, пожалуйста, сделайте это. – RageZ

+0

Чтобы развернуть комментарий @ RageZ: включен ли display_startup_errors в php.ini? –

+0

Да, у нас есть регистрация включена ... но, будучи n00b, что я есть, я полностью забыл проверить> _ <Ошибка, которую мы получаем: «PHP Предупреждение: запуск PHP: невозможно загрузить динамическую библиотеку» C: \ PHP \ ext \ php_openssl.dll '- Доступ запрещен. " Увидев это, я подумал, что это проблема разрешений с php_openssl.dll, но мы сравнили ее с другой DLL в этой папке (которую мы знаем, загружается), и они, похоже, имеют одинаковые права и группы. Есть ли что-то еще, что может остановить эту DLL от загрузки? – jelina

ответ

20

Успех!

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

Я:

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

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

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

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

+0

:(Не работал для меня. –

+1

@XCoder, попробуйте этот ответ, затем: http://stackoverflow.com/a/13441842/439427 –

+0

@RubensMariuzzo спасибо, но я уже решил, проблема была в моем 64 -битная система, и решение заключалось в том, чтобы скопировать несколько DLL в некоторых местах, я не помню точных шагов. –

66

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

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

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

+1

Использование WampServer 2.2 Я просто редактирую 'php.ini' в' C: \ wamp \ bin \ php \ php5.3.13', а затем раскомментирует 'extension = php_openssl.dll'. –

+13

Просто раскомментировав расширение = php_openssl.dll и перезапустив Apache, работал и на меня. –

+6

Спасибо большое. Это почти заставило меня плакать :-) –

1

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

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

8

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

+0

Действительно, его нужно добавить вручную, но ext папка к счастью содержит php_openssl.dll. –

+0

спасибо, это исправило ошибку для меня. – kubilay

7

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

Наличие WAMPServer 2.2 в Windows 7 64bit Я включил php_openssl в php.ini, перезапустил WAMPServer и работал безупречно.

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

  • Нажмите WampServer -> PHP -> PHP расширений -> php_openssl
  • Restart WampServer
7

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

Смежные вопросы