【问题标题】:OpenSSL from ports in PHP 5.6 / FreeBSD来自 PHP 5.6 / FreeBSD 中的端口的 OpenSSL
【发布时间】:2016-06-29 19:17:41
【问题描述】:

无法从端口获取 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 Library Version => OpenSSL 0.9.8x

【问题讨论】:

标签: php openssl freebsd


【解决方案1】:

浏览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 更新期间没有碰到它,我认为这是一件无害的事情。

【讨论】:

    猜你喜欢
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多