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



我的整个网站通过浏览器完美运行。我刚刚添加了一个 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 有什么不同?我该如何解决这个问题?

尝试在两个php/[version]/apache2中更改php.ini文件,使其如下所示:

extension=mysqlnd
extension=mysqli

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

我有 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完全解决了我的问题。

/etc/php/[version]/cli/php.ini 中注释掉它:

;extension=mysqli
保持原样/etc/php/

[version]/apache2/php.ini

extension=mysqli

重新加载 Apache 2:

sudo systemctl restart apache2

我设法通过在文件夹中的每个php.ini文件中添加分号来解决此问题/etc像这样。

;extension=mysqli

我的 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完全解决了我的问题。

最新更新