PHP启动无法加载动态库/usr/lib/php/20151012/php_mysqli.dll

Posted

技术标签:

【中文标题】PHP启动无法加载动态库/usr/lib/php/20151012/php_mysqli.dll【英文标题】:PHP Startup Unable to load dynamic library /usr/lib/php/20151012/php_mysqli.dll 【发布时间】:2017-01-05 09:50:57 【问题描述】:

我有 ubuntu 14.04 EC2 实例。我已经在上面安装了 php 7。当我执行任何 php 命令时,例如 php --version 或任何其他命令。我收到以下错误

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_mysqli.dll' - /usr/lib/php/20151012/php_mysqli.dll: cannot open shared object file: No such file or directory in Unknown on line 0

我已尝试关注

    在 php.ini 中启用 php_mysqli.dll 启用 mysqli.so 启用 php_mysqli.so sudo apt-get install php-mysql

但没有什么对我有用。

有什么建议可以解决这个问题吗?

【问题讨论】:

【参考方案1】:

我设法解决了这个问题:

    将库添加到 php.ini(etc/php/7.3/apache2;etc/php/7.3/cli 文件夹) extension=pdo_mysql.so

    重启 apache (sudo systemctl restart apache2)

    注释 php.ini 中的库(etc/php/7.3/apache2;etc/php/7.3/cli 文件夹) extension=pdo_mysql.so

    去 etc/php/7.3/mod_available

    评论扩展(因为已经加载),例如etc/php/7.3/mod_available/pdo_mysql.ini ;extension=pdo_mysql.so

【讨论】:

【参考方案2】:

我刚遇到同样的问题,发现它们是我的/etc/php/7.0 中的两个文件夹,分别是apache2cli。原来cli/php.ini 中的扩展行没有被dll 文件注释,而不是apache2 目录中的那个。评论它只是解决了问题。

【讨论】:

我在 mysqli、openssl 和 curl 上遇到了这个问题,按照您的指示评论了所有这些问题并且完美!【参考方案3】:

如果您在 /etc/php/7.2 或 /etc/php/7.3 下看到 mcrypt.so,只需将其删除并重新启动服务器即可解决问题。 当我们将 php 升级到最新版本时,该文件可能会存储到不需要的最新版本。

我使用了以下命令:

cd /etc/php/7.3

sudo rm -rf mcrypt.so

sudo service apache2 重启

【讨论】:

【参考方案4】:

运行Phpinfo() 搜索你的php.ini 路径

搜索extension=php_mysqli.so

这样评论

;extension=php_mysqli.so

【讨论】:

【参考方案5】:

只需注释掉所有带有 .dll 扩展名的行,因为您使用的是 Ubuntu。 Ubuntu 支持 .so 文件。

【讨论】:

【参考方案6】:

在我的情况下,它发生是因为我取消注释 php.ini 文件中的 extension=php_mysqli.dll 行以运行其他包。谷歌搜索后,我发现您不应该直接从 php.ini 取消注释任何内容,而是应该安装所需的 php 扩展程序,其余的会由它来完成。

【讨论】:

【参考方案7】:

最近在ubuntu16.04上遇到这个问题,终于解决了,像extension=php_*.dll这样每行加一个分号,我想是因为ubuntu上的LAMP足够智能,它会自动打开所有的为我们扩展。在 Windows 上,我们必须手动启用扩展,方法是删除每一行的分号,例如 php.ini 中的 ;extension=php_*.dll

【讨论】:

【参考方案8】:

php.ini 下的Dynamic Extensions 中启用了extension=php_mysqli.dll 行。

我通过在;extension=php_mysqli.dll 行的开头添加一个分号来禁用它。

已保存并退出 php.ini。重新启动Apache

这为我解决了错误。

【讨论】:

这不是解决方案,你只需删除 lib【参考方案9】:

如果你在 Linux 上,你不应该有 DLL 文件,而应该有 SO 文件。 所以首先,你必须删除/禁用你在 php.ini 中添加的 php_mysqli.dll。

为了使用mysqli,你应该:

为 Ubuntu 安装软件包:apt-get install php-mysql 检查它是否已经启用(例如phpinfo()) 如果未启用,则启用模块 - 如果有mysqli.ini,则检查/etc/php/mods-available/ 文件夹,其中包含extension=mysqli.so,然后检查CLI / FPM / Apache / 其他是否有指向此文件的符号链接(例如对于 CLI,在 /etc/php/cli/conf.d/ 中:20-mysqli.ini -> ../../mods-available/mysqli.ini) 重启 php / apache / nginx 取决于你使用的是什么

【讨论】:

我已经检查过了,这些都已经完成了,但仍然无法正常工作。 同样不工作...太烦人了。我花了 3 个多小时浏览不同的教程,但没有成功...:( 有同样的问题,现在是 24 小时 :(

以上是关于PHP启动无法加载动态库/usr/lib/php/20151012/php_mysqli.dll的主要内容,如果未能解决你的问题,请参考以下文章

PHP启动无法加载动态库/usr/lib/php/20151012/php_mysqli.dll

PHP 警告:PHP 启动:无法加载动态库“cassandra.so”(已尝试:/usr/lib/php/20170718/cassandra

PHP 启动:无法加载动态库`curl.so` Ubuntu

PHP 启动:无法加载动态库 php_msgpack_serialize

我无法发出任何工匠命令...每当我运行命令时,它都会说无法加载 php mbstring.so 5.6

PHP 无法加载 Imagick 库 - PHP 启动:无法加载动态库