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
中的两个文件夹,分别是apache2
和cli
。原来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