PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php/20151012/msqli.so'

Ron*_*son 1 php mysql

查看有关搜索此内容的所有文章,但没有有效的答案——在 Ubuntu 16.04 上我得到:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/msqli.so' - /usr/lib/php/20151012/msqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)

msqli.so肯定存在于上面引用的文件夹中,并且归 root 所有并且是可执行的。文件夹和父文件夹归 root 所有。糟糕的是,phpmyadmin 运行良好,可以很好地查看和操作 mySQL 数据库。我需要将文件夹/文件 chown 到 mysql 或 php 实体吗?今天刚刚重新安装了 Apache/php/mysql 并且没有修复它 - 所有最新版本。尝试使用 Eclipse IDE,但此代码在 Web 服务器上也失败。还尝试了php.ini扩展 pdo_msql.somsqlnd.so相关的编码技术,但它们都导致了上述消息(但具有适当的 .so 文件名),所以我怀疑它的“环境”设置有问题。phpinfo(); 建议司机都在那里工作。

Igo*_*ric 7

似乎卸载所有版本的php

sudo apt-get purge `dpkg -l | grep php | awk '{print $2}' | tr "\n" " "`
Run Code Online (Sandbox Code Playgroud)

并且只安装最新版本

apt install php libapache2-mod-php php-mysql php-xml php-soap php-gd php-mbstring
Run Code Online (Sandbox Code Playgroud)

为我解决了这个问题。


Ron*_*son 6

在这篇文章的帮助下解决了这个问题

更改了 php.ini:

extension=/usr/lib/php/20151012/mysqli.so
extension=/usr/lib/php/20151012/mysqlnd.so
Run Code Online (Sandbox Code Playgroud)

extension=/usr/lib/php/20151012/mysqlnd.so
extension=/usr/lib/php/20151012/mysqli.so
Run Code Online (Sandbox Code Playgroud)

即:颠倒 2 个条目的顺序,将 mysqlnd.so 放在首位。

现在,我很高兴,并且充满了热情和热情。