2016-08-29 67 views
1

我有Ubuntu 14.04 EC2实例。我已经安装了PHP 7。当我执行任何PHP命令如php --version或任何其他。我得到以下错误PHP启动无法加载动态库/usr/lib/php/20151012/php_mysqli.dll

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 

我曾尝试以下

  1. 使php_mysqli.dll在php.ini
  2. 使mysqli.so
  3. 使php_mysqli.so
  4. sudo易于得到安装php-mysql

但没有为我工作。

任何建议如何解决这个问题?

回答

4

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

为了使用mysqli的,则应:

  • 安装包的Ubuntu:apt-get install php-mysql
  • 检查它是否已经启用(带phpinfo()例如)
  • 如果没有启用,启用该模块 - 检查/etc/php/mods-available/文件夹中是否存在mysqli.ini,其中包含extension=mysqli.so,然后检查CLI/FPM/Apache/other是否存在指向此文件的符号链接(例如,CLI,/etc/php/cli/conf.d/20-mysqli.ini -> ../../mods-available/mysqli.ini
  • 重启PHP /阿帕奇/ nginx的你正在使用
+0

我已检查,这些所有的事情已经完成,但仍然无法正常工作。 – Jass

+0

你有一个新的错误? – Julqas

0

什么php.iniDynamic Extensionsextension=php_mysqli.dll下启用视。

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

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

这解决了我的错误。

0

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

1

在我的情况下,它发生了,因为我取消了运行其他软件包的php.ini文件中的extension=php_mysqli.dll行。谷歌搜索后,我发现你不应该直接从php.ini取消注释,而应该安装所需的PHP扩展,它将完成剩下的工作。

相关问题