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

时间:2016-08-29 11:18:48

标签: php mysqli amazon-ec2 ubuntu-14.04

我有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

我试过以下

  1. 在php.ini中启用php_mysqli.dll
  2. 启用mysqli.so
  3. 启用php_mysqli.so
  4. sudo apt-get install php-mysql
  5. 但没有任何对我有用。

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

9 个答案:

答案 0 :(得分:10)

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

为了使用mysqli,你应该:

  • 安装Ubuntu的软件包:Wrapper
  • 检查是否已启用(例如iframe
  • 如果未启用,请启用模块 - 检查apt-get install php-mysql文件夹中是否有phpinfo(),包含/etc/php/mods-available/,然后检查CLI / FPM / Apache /其他是否存在指向此文件的符号链接(例如,对于CLI,mysqli.iniextension=mysqli.so
  • 根据您的使用情况重启php / apache / nginx

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

我设法解决了这个问题:

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

  2. 重启apache(sudo systemctl restart apache2)

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

  4. 转到etc / php / 7.3 / mod_available

  5. 注释扩展名(因为它已经被加载),例如etc / php / 7.3 / mod_available / pdo_mysql.ini ; extension = pdo_mysql.so

答案 4 :(得分:0)

只需注释掉所有带有.dll扩展名的行,因为你在Ubuntu上。 Ubuntu支持.so文件。

答案 5 :(得分:0)

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

搜索extension=php_mysqli.so

这样的评论

;extension=php_mysqli.so

答案 6 :(得分:0)

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

我使用了以下命令:

  

cd /etc/php/7.3

     

sudo rm -rf mcrypt.so

     

sudo服务apache2重新启动

答案 7 :(得分:0)

我只是遇到了同样的问题,并且意识到它们是我的/etc/php/7.0中的两个文件夹,分别是apache2cli。原来cli/php.ini中的扩展名行未与dll文件一起注释,而不是apache2目录中的扩展名。评论它就解决了问题。

答案 8 :(得分:-2)

php.ini下的Dynamic Extensionsextension=php_mysqli.dll行已启用。

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

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

这解决了我的错误。