Не удается получить 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
Сканирование по источникам 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
Обновление, я думаю, что это безобидная вещь.
Других решений пока нет …