使用php-rdkafka错误总结: version `GLIBC_2.14‘ not found; rdkafka.so: undefined symbol: zend_object_alloc

背景:

通过编译 php-rdkafka 源码(参考链接),得到rdkafka.so 库,将rdkafka.so放在其他机器运行出错。

错误1:

  • 现象:

运行命令 php -v 报错如下:

PHP Warning:  PHP Startup: Unable to load dynamic library 'rdkafka.so' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/rdkafka.so (/lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/local/lib/php/extensions/no-debug-non-zts-20170718/rdkafka.so)), /usr/local/lib/php/extensions/no-debug-non-zts-20170718/rdkafka.so.so (/usr/local/lib/php/extensions/no-debug-non-zts-20170718/rdkafka.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP 7.2.10 (cli) (built: Dec 31 2020 08:55:00) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

运行  php -i | grep rdkafka 报错如下:

PHP Warning:  PHP Startup: Unable to load dynamic library 'rdkafka.so' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/rdkafka.so (/lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/local/lib/php/extensions/no-debug-non-zts-20170718/rdkafka.so)), /usr/local/lib/php/extensions/no-debug-non-zts-20170718/rdkafka.so.so (/usr/local/lib/php/extensions/no-debug-non-zts-20170718/rdkafka.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

  • 原因:

/lib64/libc.so.6: version `GLIBC_2.14' not found

rdkafka.so 库需要的依赖 `GLIBC_2.14'  没有找到。

主要是因为编译 rdkafka.so  库的机器安装的PHP 版本, 和 使用rdkafka.so 库 机器安装的PHP版本不一致,导致缺少依赖,

建议编译环境和运行环境的PHP版本一致。

  • 解决:

保持编译rdkafka.so  环境的PHP版本和使用rdkafka.so  环境的PHP 版本一致。

错误2:

  • 现象:

运行 php -v 

运行 php -i | grep rdkafka

运行代码 php producer.php

php: symbol lookup error: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/rdkafka.so: undefined symbol: zend_object_alloc

  • 原因:

rdkafka.so 库没有zend_object_alloc

主要是因为编译rdkafka.so 库的源码支持的PHP版本不对应。

建议下载支持 该PHP版本的 php-rdkafka 源码进行编译。

  • 解决:

下载支持 该PHP版本的 php-rdkafka 源码编译rdkafka.so

下载各个版本php-rdkafka 源码地址: http://pecl.php.net/package/rdkafka

下载最新版本php-rdkafka 源码地址: https://github.com/arnaud-lb/php-rdkafka

猜你喜欢

转载自blog.csdn.net/abcdu1/article/details/112377501