4-12-2014, 23:04 Посмотрели: 26582 Добавил: Alex V

Ошибка OpenSSL - Unable to find the wrapper https и её лечение!


Вчера столкнулся с проблемой на Denwer, при написании парсера и получении страницы с помощью file_get_contents у сайтов с openssl https протоколом, получал одну и ту же ошибку:

Unable to find the wrapper "https" - did you forget to enable it when you configured PHP?


Погуглив, нашел достаточно много топиков с такой же проблемой, правда встречается она не только не денвере, но и на хостинге с VPS. Причина везде одна:

1. Закомментирована строка ;extension=php_openssl.dll

или

2. Отсутствует расширение php_openssl.dll

Приступим к решению задачи!

Решение для WAMP


Если вы используете WAMP сервер, то нужно кликнуть на иконку WAMP ▬ PHP ▬ PHP Extensions и выбрать php_openssl.

Ошибка OpenSSL - Unable to find the wrapper https и её лечение!


Теперь включаем SSL модуль:

Apache ▬ Apache Modules и выбираем ssl_module

Вот и все, а с денвером или же VPS немного сложнее.

Решение для Denwer и серверов VPS


Проверяем есть ли расширение php_openssl.dll в папке \usr\local\php5\ext\.

Если там есть этот файл то отлично, если нет, то можно его скачать:

Скачать файл php_openssl.dll [35,46 Kb] (cкачиваний: 369)


Обратите внимание, для корректной работы требуется библиотека libeay32.dll (в комплекте дистрибутива PHP). Если в этом далеки, лучше скачайте готовую сборку и установите поверх вашего денвера. В случаи же с VPS обратитесь к системному админу. Перед установкой сделайте резервную копию файла php.ini если вносили в него правки.

Когда вы убедились в наличии расширения, перезапустили сервер/денвер и ошибка все равно вылазит, заходим в файл php.ini и расскоментируем строку (у меня 973):

;extension=php_openssl.dll


Т.е нужно убрать точку с запятой ;, чтобы получилось так:

extension=php_openssl.dll


На всякий случай, можете заменить на уже готовый файл с раскомментированной строкой:

Скачать PHP.ini [21,21 Kb] (cкачиваний: 156)


Перезапускам сервер и проверяем работу:

<?php

error_reporting(E_ALL);
$file = file_get_contents('https://vk.com/');
die($file);

?>


Вот и все!
Рубрика записи: PHP

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Юзер панель
Я тебя не знаю!
Зарегистрируйся, либо

войди под своим логином!

Fuck, я забыл свой пароль!

Восстановить данные =0
Новое на сайте
Известная социальная сеть Instagram приступила к тестированию новой...
Недавно, в приложения для Android и iOS социальной сети Twitter была...
Недавно, в Google "Мой бизнес" разработчики добавили новейший способ, как...
Недавно стало известно о том, что соцсеть Facebook по упоминанию в русских...
Недавно, представитель корпорации Google, Джон Мюллер (John Mueller)...
Голосуем

Ваша любимая CMS?


DataLife Engine
WordPress
Joomla
Drupal
LiveStreet
UCOZ
Самопис
Php+Includ
Статика