БлогNot. Заставляем Denwer поддерживать HTTPS

Заставляем Denwer поддерживать HTTPS

Безопасный протокол HTTPS сегодня нужен всё чаще при программировании web-приложений. В комплекте Denwer, устанавливаемом по умолчанию, попытавшись вызвать локальной скрипт через HTTPS, мы видим обычно лишь следующее:

Warning: file_get_contents(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in Z:\home\localhost\www\https.php on line 3
Warning: file_get_contents(https://www.google.com/): failed to open stream: Invalid argument in Z:\home\localhost\www\https.php on line 3

Это был результат выполнения на локалхосте Denwer скрипта

<?php
 error_reporting(E_ALL);
 $file = file_get_contents('https://www.google.com/');
 die($file);
?>

Как решить проблему с настройкой протокола HTTPS на Denwer?

1. Выясняем, какой именно файл php.ini подключён, например, запустив на локальном хосте следующий скрипт

<?php
 phpinfo();
?>

и прочитав ответ в строке Loaded Configuration File первой таблицы с данными. С версии PHP 5.2.4 и выше поможет и просто

<?php
 echo php_ini_loaded_file();
?>

Для Denwer в норме должно получиться Z:\usr\local\php5\php.ini

2. В нужном файле php.ini ищем и раскомментируем (удалим из первой позиции точку с запятой) строку вида

;extension=php_openssl.dll

3. Если в папке дополнений (при запущенном Denwer это обычно папка Z:\usr\local\php5\ext\, при условии, что вы не конфигурировали сервер по-другому) есть файл php_openssl.dll, то идём к п. 5 :)

Иначе качаем вот отсюда пакет расширений (потребуется ввести адрес E-mail, на который придёт ссылка для скачивания).

4. Установщик пакета кривоват, особенно под новыми Windows, проще его открыть как архив обычным WinRAR или 7Zip и извлечь нужный файл в папку Z:\usr\local\php5\ext\ - путь от корня архива тоже будет \usr\local\php5\ext\php_openssl.dll.

5. Перезагружаем компьютер и перезапускаем Denwer, теперь первый скрипт успешно (с точноcтью до кодировки) показал содержимое главной страницы Google на локалхосте, при этом содержимое получено обычной функцией file_get_contents.

Не забудьте также, что пользоваться устаревшей версией PHP 5.3 совсем необязательно, привычный Denwer легко заставить работать и с PHP 5.5.

21.11.2016, 17:57 [20246 просмотров]


теги: ошибка php сервер протоколы безопасность

показать комментарии (3)