Почему не работает функция fsockopen()?

Monitor

Новичок
Почему не работает функция fsockopen()?

Установил на свой локальный комп Апач с поддержкой SSL, создал ключ и сертификат. Скрипты по протоколу https:// доступны. Но при вызове функции fsockopen() все время появляется ошибка:
Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://*****.ru:443 (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?) in C:\apache\Apache2\htdocs\https.php on line 16
Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? (18963584)
Подскажите, с чем может быть связано наличие этой ошибки?

P.S.Для незащищенного режима функция fsockopen() работает нормально.
 

tony2001

TeaM PHPClub
экстеншен openssl и поддержка SSL в PHP никакого отношения к Апачу не имеют.
 

Monitor

Новичок
Автор оригинала: tony2001
экстеншен openssl и поддержка SSL в PHP никакого отношения к Апачу не имеют.
Значить еще нужно установить OpenSSL и что-то прописать в php.ini?
 

Monitor

Новичок
Автор оригинала: tony2001
extension=php_openssl.dll

и вот это читать: http://php.net/manual/en/openssl.installation.php
Кажись заработало! extension=php_openssl.dll разкомментировал, а php_openssl.dll скопировал в системную папку. С хостом теперь соединяется и контент дает. Спасибо!
 

Monitor

Новичок
Автор оригинала: tony2001
да не php_openssl.dll надо в системную "папку", а libeay32.dll !
libeay32.dll у меня там уже был от установки Апача. А вот php_openssl.dll небыло, поэтому и не работало. Как только добавил - заработало. extension=php_openssl.dll у меня был разкомментирован до этого.
 

Monitor

Новичок
Автор оригинала: tony2001
php_openssl.dll должен быть в extension_dir.
И в extension_dir он тоже есть, но видать так у меня настроено, что используется тот, который в системной папке, т.к. я только что хотел его удалить. чтобы еще раз проверить. будет ли без него в системной папке работать, но он не удалился, т.к. оказался заблокированным, т.е. уже используется.
 

dimagolov

Новичок
tony2001, не исключено, что у него в путях есть этот php_openssl.dll других версий, который не живет с текущей версией php.

Monitor, php при старте ругается в лог, если extension активирован в конфиге, но по каким-то причинам не может пуститься.
 

Monitor

Новичок
Автор оригинала: tony2001
полная ерунда.
Почему же ерунда? Вот я сейчас специально остановил Апач, после чего удалил этот php_openssl.dll файл из системной папки. Далее запустил Апач и скрипт - и моментально появилась ошибка как и в первом посту. Далее опять добавил его, рестартанул Апач и функция fsockopen() вновь работает. В отсутствии этого файла в системной папке все дело и оказалось. Спасибо за наводку! :)

-~{}~ 25.07.08 16:46:

Автор оригинала: dimagolov
Monitor, php при старте ругается в лог, если extension активирован в конфиге, но по каким-то причинам не может пуститься.
Я почти никогда в лог РНР не заглядывал. Даже не знаю где он у меня. Сейчас поищу - гляну.

-~{}~ 25.07.08 16:51:

Лог РНР у меня оказалось по умолчанию отключен.
 

tony2001

TeaM PHPClub
>Почему же ерунда? Вот я сейчас специально остановил Апач, после чего удалил
> этот php_openssl.dll файл из системной папки. Далее запустил Апач и скрипт - и
> моментально появилась ошибка как и в первом посту. Далее опять добавил его,
> рестартанул Апач и функция fsockopen() вновь работает.

потому, что ЭТО - полная ерунда.
так оно и бывает, когда делаешь магические пассы руками, даже не пытаясь разобраться.

показ ошибок при запуске включаются в том же php.ini - display_startup_errors = On.
в браузере, естественно, их не будет - они в логах апача и в консоли при запуске PHP CLI.
 

Monitor

Новичок
Автор оригинала: tony2001
потому, что ЭТО - полная ерунда.
так оно и бывает, когда делаешь магические пассы руками, даже не пытаясь разобраться.

показ ошибок при запуске включаются в том же php.ini - display_startup_errors = On.
в браузере, естественно, их не будет - они в логах апача и в консоли при запуске PHP CLI.
Ошибки включил и вот, когда в sistem32 отсутствует файл php_openssl.dll в логах появляется следующая ошибка:
[Fri Jul 25 16:20:33 2008] [info] mod_ssl/2.0.63 compiled against Server: Apache/2.0.63, Library: OpenSSL/0.9.7m
PHP Warning: PHP Startup: Unable to load dynamic library './php_openssl.dll' - \xcd\xe5 \xed\xe0\xe9\xe4\xe5\xed \xf3\xea\xe0\xe7\xe0\xed\xed\xfb\xe9 \xec\xee\xe4\xf3\xeb\xfc.\r\n in Unknown on line 0
<br />
<b>Warning</b>: PHP Startup: Unable to load dynamic library './php_openssl.dll' - Не найден указанный модуль.
и функция fsockopen() не работает. Как только добавляю - все нормально, ошибки нет и функция работает.
 

tony2001

TeaM PHPClub
>PHP Warning: PHP Startup: Unable to load dynamic library './php_openssl.dll'

extension_dir нормальный поставь, а.
 

Monitor

Новичок
Автор оригинала: tony2001
>PHP Warning: PHP Startup: Unable to load dynamic library './php_openssl.dll'

extension_dir нормальный поставь, а.
Да ладно, работает - и бог с ним. А то изменю, что-то другое перестанет работать...
 

tony2001

TeaM PHPClub
что, интересно, может перестать работать, если ты укажешь нормальный extension_dir ?
 

Monitor

Новичок
затрудняюсь на это ответить... Этот 5-ый РНР у меня уже пол года стоит... Я уже всего и не вспомню, что подключал и что отключал... Плюс dll-ки в РНР у меня по разным папкам... Какую из этих папок обозвать extension_dir тоже не совсем понятно... Пусть так и остается. Кроме этого вопроса у меня полно других...
 
Сверху