PHP启动:无法加载动态库'mysqli'未定义符号:mysqlnd_global_stats

时间:2019-06-08 16:50:12

标签: php mysqli cron

我的整个网站都可以通过浏览器完美运行。我刚刚添加了一个cron作业,并且每次运行此错误都会被触发:

PHP Startup: Unable to load dynamic library 'mysqli' (tried: /usr/lib/php/20180731/mysqli (/usr/lib/php/20180731/mysqli: cannot open shared object file: No such file or directory), /usr/lib/php/20180731/mysqli.so (/usr/lib/php/20180731/mysqli.so: undefined symbol: mysqlnd_global_stats))

不确定发生了什么。我已经使用浏览器和cron记录了PHP版本,结果相同:7.3.2-3 + 0〜20190208150725.31 + stretch〜1.gbp0912bd

cron有何不同?我该如何解决?

3 个答案:

答案 0 :(得分:0)

我有2个解决方案。

解决方案一: 我注意到在脚本结尾处关闭mysql连接可以解决问题。

解决方案二: 事实证明,/etc/php/7.3/cli/php.ini/etc/php/7.3/fpm/php.ini之间是有区别的。

第一个有这一行:

    extension=mysqli

第二个是这个(注意分号):

;    extension=mysqli

/etc/php/7.3/cli/php.ini中添加分号已完全解决了我的问题。

答案 1 :(得分:0)

尝试更改两个php.ini中的php/[version]/apache2文件,使其类似:

extension=mysqlnd
extension=mysqli

首先加载mysqlnd可以消除我的debian VM上的错误。如果您打算在命令行上运行相同的代码,则不妨考虑更改php/[version]/cli/php.ini

答案 2 :(得分:-3)

我的php版本是7.2

我跑步时

php -m

PHP警告:

PHP启动:无法加载动态库'mysqli'(尝试:/ usr / lib / php / 20170718 / mysqli(/ usr / lib / php / 20170718 / mysqli:无法打开共享对象文件:没有这样的文件或目录),/ usr / lib / php / 20170718 / mysqli.so(/usr/lib/php/20170718/mysqli.so:undefined symbol:mysqlnd_global_stats))在第0行上为未知

解决方案

我刚刚在/etc/php/7.2/cli/php.ini中添加了分号,就彻底解决了我的问题。