Транспорт сокетов "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 не являются моей областью знаний - меня назначили ответственным, потому что никто другой, похоже, ничего не знает.
6 answers
У меня была проблема в 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
.
После этого все работало нормально.
Успех!
После проверки файлов журнала и проверки разрешений на php_openssl.dll были правы, я прогуглил предупреждение и нашел еще кое-что, что можно попробовать.
Поэтому я:
- добавлено C:\PHP\ext к пути Windows
- добавлено libeay32.dll и ssleay32.dll чтобы C:\WINDOWS\system32\inetsrv
- перезагрузил сервер
Я не уверен, какой из них исправил мою проблему, но теперь она определенно исправлена! :)
Я нашел эти вещи, чтобы примерить эта страница: http://php.net/manual/en/install.windows.extensions.php
Спасибо за вашу помощь!
В XAMPP версии 1.7.4 сервер не имеет extension=php_openssl.dll строка в файле php ini. Мы должны добавить extension=php_openssl.dll в файле php.ini
Столкнулся с той же проблемой на Laravel 4, пытаясь отправить электронную почту с использованием шифрования SSL.
Имея WampServer 2.2 в 64-битной версии Windows 7, я включил php_openssl только в php.ini, перезапустил WampServer и работал безупречно.
Сделал следующее:
- Нажмите WampServer -> PHP ->расширения PHP ->php_openssl
- Перезапустить сервер WAMP
Просто раскомментируйте extension=php_openssl.dll Перезапустите службу Apache, и это должно помочь.
Я также столкнулся с этой проблемой только что, когда возился с laravel.
Я использую wampserver для Windows, и мне пришлось скопировать файл /bin/apache/apacheversion/bin/php.ini в /bin/php/phpversion/php.ini