【问题标题】:PHP Startup: Unable to load dynamic library 'mysqli' undefined symbol: mysqlnd_global_statsPHP 启动:无法加载动态库 'mysqli' 未定义符号:mysqlnd_global_stats
【发布时间】:2020-11-28 14:07:11
【问题描述】:

我的整个网站通过浏览器完美运行。我刚刚添加了一个 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 mysqli cron


    【解决方案1】:

    尝试更改 php/[version]/apache2 中的 php.ini 文件,使其类似于以下内容:

    extension=mysqlnd
    extension=mysqli
    

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

    【讨论】:

    • 这在运行 MySQL 8 和 PHP 7.4 的 CentOS 7 上对我有用......没有其他工作,但这样做......谢谢!
    • 适用于旧版 Ubuntu,PHP 7.2
    【解决方案2】:

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

    【讨论】:

    • 我无法理解为什么这有效,但它有效............配置 cakephp 时
    【解决方案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)) 在 Unknown on line 0

    解决方案

    我只是将分号添加到 /etc/php/7.2/cli/php.ini 完全解决了我的问题。

    【讨论】:

      猜你喜欢
      • 2020-09-13
      • 2020-04-07
      • 2017-05-06
      • 2013-07-21
      • 2019-04-03
      • 1970-01-01
      • 2015-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多