centos中源码编译安装的 PHP7.4,安装 mysqli 扩展报错 mysqli.so: un

php / 189人浏览 / 0人评论

给客户部署实体centos7.9+php7.4 在安装pdo扩展的时候报“ mysqli.so: undefined symbol: mysqlnd_global_stats”,能安装,也能生成so文件,就是啊无法加载,不管是Php -v 还是php -m 都报无法加载so扩展文件,然后报Mysql那个错误,在网上找了一堆的答案,最后看到一个laravel老哥的方案好用,顺便做个记录。

报错内容:“mysqli.so: undefined symbol: mysqlnd_global_stats”

产生原因:

mysqli 扩展依赖 mysqlnd 扩展,如果在编译 php 时没有开启,后续配置 php.ini 时需要注意先后顺序,mysqlnd 要在前面。在尝试的过程中发现,如果是通过 php 源码来编译扩展,mysqlnd 因为没有 config.m4,没有办法单独编译出来,只能在编译 php 时一起编译。重新编译 php(增加参数 --enable-mysqlnd)之后,再单独编译 mysqli,然后配置 php.ini(增加 extension=mysqli),扩展加载不再报错。

推荐解决方案:

直接删除重新安装php,编译的时候记得增加参数 --enable-mysqlnd,然后在去安装各种扩展,就都不报错了

评论列表

还没有人发表评论

发表评论 取消回复