Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP启动无法加载动态库/usr/lib/PHP/20151012/PHP_mysqli.dll_Php_Mysqli_Amazon Ec2_Ubuntu 14.04 - Fatal编程技术网

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

PHP启动无法加载动态库/usr/lib/PHP/20151012/PHP_mysqli.dll,php,mysqli,amazon-ec2,ubuntu-14.04,Php,Mysqli,Amazon Ec2,Ubuntu 14.04,我有ubuntu 14.04 EC2实例。我已经在上面安装了PHP7。当我执行任何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

我有ubuntu 14.04 EC2实例。我已经在上面安装了PHP7。当我执行任何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
  • sudoapt-get安装php-mysql
  • 但对我来说什么都不管用


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

    如果你在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/apache/nginx

    php.ini
    中的
    Dynamic Extensions
    下,行
    extension=php\u mysqli.dll
    已启用

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

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


    这为我解决了这个错误。

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

    ,在我的例子中,这是因为我在php.ini文件中取消了
    extension=php.\u mysqli.dll
    行的注释,以便运行其他包。在谷歌搜索之后,我发现您不应该直接从php.ini文件中取消注释任何内容m php.ini,您应该安装所需的php扩展名,它将完成其余的工作。

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

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

    搜索
    extension=php\u mysqli.so

    这样评论

    ;extension=php_mysqli.so
    

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

    我使用了以下命令:

    cd/etc/php/7.3

    sudo rm-rf mcrypt.so

    sudo服务apache2重启


    我也遇到了同样的问题,意识到它们是我的
    /etc/php/7.0
    目录中的两个文件夹,分别是
    apache2
    cli
    。结果是
    cli/php.ini
    中的扩展行未注释dll文件,而不是
    apache2
    目录中的扩展行。对其进行注释就解决了问题。

    我管理了它o这样解决:

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

  • 重新启动apache(sudo systemctl restart apache2)

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

  • 可访问etc/php/7.3/mod_

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


  • 我已经检查过了,所有的事情都已经完成了,但仍然不起作用。同样的不起作用…太烦人了。我花了3个多小时学习不同的教程,但没有成功…:(有同样的问题,现在已经24小时了:(这不是解决方案,您只是删除了libI,mysqli、openssl和curl都有这个问题,正如您所指出的那样对它们进行了评论,并且非常完美!