【问题标题】:PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/msqli.so'PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php/20151012/msqli.so'
【发布时间】:2018-03-15 05:22:00
【问题描述】:

查看了所有关于搜索此问题的文章,但没有有效的答案——在 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

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

【问题讨论】:

  • 你检查mysqli.so文件是否在/usr/lib/php/20151012/吗?
  • 是的,这就是我说“msqli.so 肯定在上面引用的文件夹中”时的意思
  • 没有以任何方式回答问题,但我在文件夹路径中发现了明显的日期戳,我只是来问一下,你真的使用的是 2015 版本的 PHP(eeek!!!)或者你只是有一个奇怪的文件夹名称?

标签: php mysql


【解决方案1】:

好像卸载了所有版本的php用

sudo apt-get purge `dpkg -l | grep php | awk '{print $2}' | tr "\n" " "`

并且只安装最新版本

apt install php libapache2-mod-php php-mysql php-xml php-soap php-gd php-mbstring

为我解决了问题。

【讨论】:

    【解决方案2】:

    解决了with help from this post

    更改了 php.ini:

    extension=/usr/lib/php/20151012/mysqli.so
    extension=/usr/lib/php/20151012/mysqlnd.so
    

    extension=/usr/lib/php/20151012/mysqlnd.so
    extension=/usr/lib/php/20151012/mysqli.so
    

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

    现在我很高兴,并且以敏捷和热情进行远程办公。

    【讨论】:

    • 这也解决了我的问题!!我只有 'extension=mysqli',所以我在 'extension=mysqli' 之前添加了 'extension=mysqlnd' 并且有效!
    猜你喜欢
    • 2018-01-15
    • 2018-12-14
    • 2018-03-14
    • 1970-01-01
    • 2017-01-05
    • 2017-07-29
    • 2019-09-06
    • 2017-06-07
    • 2015-10-13
    相关资源
    最近更新 更多