无法从端口获取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
基本系统打开:
# /usr/bin/openssl version
OpenSSL 0.9.8x 10 May 2012
端口打开:
# /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
所以我认为这是无害的事情。