У меня естьОкнаСервер 2003 R2 сАпачи2.2.4 иPHP5.2.6 Я хочу получить доступ к страницам по протоколу https (SSL).
И я получаю эту ошибку (Zend Framework GData):
Unable to find the socket transport "ssl" - enter code here did you forget to enable it when you configured PHP?
Итак, что я сделал. Я зашел в php.ini и раскомментировал строку
extension=php_openssl.dll
Я также установилWin32 OpenSSL.
Но ничего не работает. Что мне делать?
решение1
Хорошо, здесь нужно выполнить несколько шагов:
- Во-первых, создайте файл phpinfo(), чтобы проверить, что расширение PHP SSL действительно включено. Я знаю, что вы сказали, что включили его, но проверьте, что вы сделали это в правильном файле PHP.ini, и что изменения действительно вступили в силу.
- Убедитесь, что libeay32.dll и ssleay32.dll находятся где-то в PATH Windows.
- Убедитесь, что php_openssl.dll находится в каталоге расширений.
- Проверьте, что ваш файл phpinfo() отображает правильный каталог расширений.
решение2
Ниже приведены соответствующие части учебника по следующим темам:http://fash7y.wordpress.com/2011/12/0/solved-how-to-set-up-https-with-openssl-in-wamp/
продолжить работу с использованиемhttp://openssl-for-windows.googlecode.com/files/openssl-0.9.8k_WIN32.zip.
Хорошо, давайте сделаем следующие шаги. ;)
- Создать SSL-сертификат и ключ
а. Ekstrak OpenSSL в свой каталог и скопируйте этот файл:
openssl.cnf to .\Apache2.2.11\conf\
from folder bin, copy all files to .\Apache2.2.11\bin\
// Заменить старые файлы! :D
б) Откройте командное окно DOS, введя текст CMD
в меню поиска.
в. Введите этот cd C:\wamp\bin\apache\apache2.2.11\bin
г. Создайте закрытый ключ сервера с 1024-битным шифрованием, введя следующую команду: openssl genrsa -des3 -out server.key 1024
// Вам будет предложено ввести пароль (фразу-пароль), просто введите любой пароль, который вам нравится.
е. Удалите парольную фразу из закрытого ключа RSA (сохранив резервную копию исходного файла). Введите это:
копия server.key server.key.org
openssl rsa -in server.key.org -out server.key
// Система попросит у вас пароль, просто введите его.
f. Создайте самоподписанный сертификат (структура X509) с ключом RSA, который вы только что создали. Введите это: openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt -config C:\wamp\bin\apache\apache2.2.11\conf\openssl.cnf
- Скопируйте файлы server.key и server.crt.
а. В Apache2.2.11\conf\ создайте две папки с именами ssl.key и ssl.crt
б) Скопируйте файл server.key в папку ssl.key, а файл server.crt — в папку ssl.crt.
- Отредактируйте файл httpd.conf, php.ini и httpd_ssl.conf
а. Откройте файл httpd.conf
б) Удалите комментарий «#» в строке, которая гласит: LoadModule ssl_module modules/mod_ssl.so
в) Удалите комментарий «#» в строке, которая гласит: Include conf/extra/httpd-ssl.conf
г. Откройте этот файл-> C:\wamp\bin\php\php5.3.8\php.ini
е. Удалите комментарий ';' в строке, которая гласит: extension=php_openssl.dll
е. Откройте этот файл -> C:\wamp\bin\apache\Apache2.2.11\conf\extra\httpd_ssl.conf
г. Найдите строку, в которой говорится: .
h. Сразу после этого измените строку, которая гласит:
Change the line “DocumentRoot …” to DocumentRoot “C:/wamp/www/”
Change the line “ServerName…” to ServerName localhost:443
Change the line “ErrorLog….” to Errorlog “C:/wamp/bin/apache/Apache2.2.11/logs/sslerror.log”
Change the line “TransferLog ….” to TransferLog “C:/wamp/bin/apache/Apache2.2.11/logs/sslaccess.log”
Change the line “SSLCertificateFile ….” to SSLCertificateFile “C:/wamp/bin/apache/Apache2.2.11/conf/ssl.crt/server.crt”
Change the line “SSLCertificateKeyFile ….” to SSLCertificateKeyFile “C:/wamp/bin/apache/Apache2.2.11/conf/ssl.key/server.key”
Change the line which says <Directory “C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin”> or something like that (sorry I’m forget what its default dir :p) to <Directory “C:/wamp/www/”>
Add the following lines inside those <Directory … >…</Directory> tags:
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Change the line “CustomLog…” to CustomLog “C:/wamp/bin/apache/Apache2.2.11/logs/ssl_request.log”
- Убедитесь, что это работает!
а. В предыдущих окнах команд DOS введите httpd -t . Если отображается Sysntax is OK, перейдите к следующему шагу. Если нет, исправьте неправильный синтаксис и повторите шаг 3.
б. Перезапустите сервер Apache. Если перезапуск прошел успешно, то откройте браузер и введите http.s localhost/
Как дела? Работает, а? Поздравляю! :D
- Попробуйте это: htt..localhost