我最近使用 php 7.2 和 Redis 安装了一个新的 Centos 7 系统。这工作正常。这是我 yum 安装的 php 包。
yum 安装 php72.x86_64 php72-php-cli.x86_64 php72-php-common.x86_64 php72-php-devel.x86_64 php72-php-fpm.x86_64 php72-php-gd.x86_64 php72-php-json.x86_64 php72-php-mbstring.x86_64 php72-php-mysqlnd.x86_64 php72-php-pdo.x86_64 php72-php-pecl-http.x86_64 php72-php-pecl-http-devel.x86_64 php72-php-pecl-igbinary.x86_64 php72-php-pecl-memcached.x86_64 php72-php-pecl-msgpack.x86_64 php72-php-pecl-propro.x86_64 php72-php-pecl-raphf.x86_64 php72-php-xml.x86_64 php72-php-xmlrpc.x86_64 php72-runtime.x86_64 php72-php-pecl-redis.x86_64 php php-devel
然后我按照以下说明安装了 pthreads:https://gist.github.com/petronetto/b31838efc4a854d06ba5d1d9f3b9fec5但是我在说明中跳过了 php 72 的 yum 包安装。
现在当我检查 zts-php -i | grep -i thread 我得到错误,但 zts-php 否则工作正常。
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/redis.so' (tried: /usr/lib64/php/modules/redis.so (/usr/lib64/php/modules/redis.so: undefined symbol: compiler_globals), /usr/lib64/php-zts/modules//usr/lib64/php/modules/redis.so.so (/usr/lib64/php-zts/modules//usr/lib64/php/modules/redis.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
我读到我需要安装 php-igbinary,我确实这样做了,但这并没有解决问题。
如何解决undefined symbol: compiler_globals问题?
这类似于以下问题:phprediss extension don't work,unable to load 'redis.so'
最佳答案
使用 pecl 将 redis 从 4.2 更新到 4.3
# pecl install redis
关于linux - Centos 7 与 PHP 7.2 Pthreads 无法加载 redis.so,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51082638/