【问题标题】:PHP 7.0 and MySQL start-up error "undefined symbol: mysqlnd_allocator in Unknown"PHP 7.0 和 MySQL 启动错误“undefined symbol: mysqlnd_allocator in Unknown”
【发布时间】:2016-10-29 13:19:32
【问题描述】:

在自定义编译的 PHP7 版本上收到此警告,即使在运行 php -v 时也是如此。

尝试了所有发布的解决方案。是什么原因造成的?

PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php/20151012/pdo_mysql.so' - /usr/lib/php/20151012/pdo_mysql.so:未定义符号:在线未知中的 mysqlnd_allocator 0

与此有类似的问题,但它们并不完全相同 - 它们通常与缺少的 mcrypt 库有关。我确认 mycrypt 实际上已加载,打印出 phpinfo() 时也已加载 pdo_mysql。

订单有问题吗?另外,这是针对 PHP 7 的,我相信它有不同的 ini 文件格式。


编辑:按照此处的说明进行重新编译。对此不太有经验:http://www.hashbangcode.com/blog/compiling-and-installing-php7-ubuntu

另外,使用apt-get purge 完全删除了 MySQL。没有任何运气。

【问题讨论】:

  • 你重新编译 PHP 了吗? This resource 表示用于驱动 PHP MySQL 库的 C 级库是编译时决定的。所以,听起来好像编译错了。
  • KodiakSA,在提出问题时,请尝试进行修改,以使问题对全新的读者仍然有意义(这是一个很好的一般建议,而不是专门针对这个问题)。如果人们看到的第一件事是“这不是一个副本”,那么只有看过第一个版本的人才有意义。
  • 我尝试重新编译,我在 ubuntu 上。我还清除并重新安装了 php 和 php_mysql。
  • 一半。会做关于 dups 等.. 新的!谢谢
  • 好的。你会编辑你的编译命令/标志等吗?那东西有很大的不同。如果您能做到,我们会尝试重新提出这个问题。

标签: php mysql pdo


【解决方案1】:

(代表 OP 发布)。

命令按顺序执行;然后我从系统中完全删除了 MySQL 和 PHP:

sudo apt-get update
sudo apt-get install php7.0
sudo apt-get install php7.0-mysql

这似乎已经修复了错误。呜呜呜。

【讨论】:

    【解决方案2】:

    有时会出现在php.ini 文件中未正确加载扩展的问题。 我有类似的错误,只有在我将这些扩展before pdo_mysql 添加到php.ini:

    之后它才开始工作
    extension=mysqlnd    
    extension=pdo
    extension=pdo_mysql
    

    终于成功了!

    但是它显示了 mysqlnd、PDO 和 pdo_mysql 之前加载的警告,这意味着 pdo_mysql 已经启用并且可以完全注释掉。更多信息请查看PHP Warning: Module already loaded in Unknown on line 0

    【讨论】:

      【解决方案3】:

      我发现我有

      extension=pdo_mysql
      

      在我的 php.ini 文件中未注释,这是导致问题的原因。库由我系统上的 /etc/php/7.4/cli/conf.d/ 文件中的文件加载,不需要通过取消注释 php.ini 文件中的行来加载。

      【讨论】:

        猜你喜欢
        • 2017-04-20
        • 2014-05-22
        • 2022-10-24
        • 2023-01-31
        • 1970-01-01
        • 1970-01-01
        • 2017-09-02
        • 1970-01-01
        相关资源
        最近更新 更多