OpenSSL из портов в PHP 5.6 / FreeBSD

Не удается получить OpenSSL из портов для работы в PHP. FreeBSD 9.1.

php -i показывает:

OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 0.9.8x 10 May 2012
OpenSSL Header Version => OpenSSL 1.0.2g  1 Mar 2016

Базовая система openssl:

# /usr/bin/openssl version
OpenSSL 0.9.8x 10 May 2012

Порты openssl:

# /usr/local/bin/openssl version

WARNING: can't open config file: /usr/local/openssl/openssl.cnf
OpenSSL 1.0.2g  1 Mar 2016

Модуль, кажется, связан с соответствующей библиотекой:

# ldd /usr/local/lib/php/20131226-zts/openssl.so
/usr/local/lib/php/20131226-zts/openssl.so:
libssl.so.8 => /usr/local/lib/libssl.so.8 (0x801224000)
# strings /usr/local/lib/libssl.so.8 | grep OpenSSL
OpenSSLDie
SSLv2 part of OpenSSL 1.0.2g  1 Mar 2016
SSLv3 part of OpenSSL 1.0.2g  1 Mar 2016
TLSv1 part of OpenSSL 1.0.2g  1 Mar 2016
DTLSv1 part of OpenSSL 1.0.2g  1 Mar 2016
OpenSSL 1.0.2g  1 Mar 2016

Нужна помощь в понимании того, почему php -i показывает версию библиотеки OpenSSL => OpenSSL 0.9.8x

2

Решение

Сканирование по источникам PHP показывает, что версия библиотеки получается с помощью вызова функции:

php_info_print_table_row(2, "OpenSSL Library Version", SSLeay_version(SSLEAY_VERSION));

И версия заголовка — это константа препроцессора, которая компилируется в расширение:

php_info_print_table_row(2, "OpenSSL Header Version", OPENSSL_VERSION_TEXT);

Вы, вероятно, обновили openssl Порт, получил новую версию библиотеки, и потому что ее ABI не изменился, все работает для вас. Но так как вы не перекомпилировали само расширение, OPENSSL_VERSION_TEXT константа имеет значение из старого заголовка.

Если вы действительно беспокоитесь об этом, вы можете восстановить php56-openssl порт, но так как сопровождающие не столкнулись с этим во время openssl Обновление, я думаю, что это безобидная вещь.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]