【问题标题】:How to solve Uncaught Error: Class 'mysqli' not found如何解决未捕获的错误:找不到类“mysqli”
【发布时间】:2020-04-12 21:43:02
【问题描述】:

在这里找到了许多标题相同的帖子,但我仍然无法正常工作。

运行了三个 docker 容器: - 一个正在运行mysql - 一个正在运行 phpmyadmin(它与 mysql db 完美配合) - 一个正在运行 php:apache,我是这样创建的:

docker run --network qrstampnet0 --name qrstampweb -d -v /var/qrstamp/www:/var/www/ -p 80:80 -p 443:443 php:apache

运行以下 PHP 脚本时出现错误“未捕获的错误:找不到类 'mysqli'”:

$con->connection = new mysqli($mysql_db_hostname, $mysql_db_user, $mysql_db_password);

于是我用 PHPInfo() 进行了检查,得到了以下结果:

PHP version 7.4.4

Configure command: './configure' '--build=x86_64-linux-gnu' '--with-config-file-path=/usr/local/etc/php' '--with-config-file-scan-dir=/usr/local/etc/php/conf.d' '--enable-option-checking=fatal' '--with-mhash' '--enable-ftp' '--enable-mbstring' '--enable-mysqlnd' '--with-password-argon2' '--with-sodium=shared' '--with-pdo-sqlite=/usr' '--with-sqlite3=/usr' '--with-curl' '--with-libedit' '--with-openssl' '--with-zlib' '--with-pear' '--with-libdir=lib/x86_64-linux-gnu' '--with-apxs2' '--disable-cgi' 'build_alias=x86_64-linux-gnu'

Configuration File (php.ini) Path: /usr/local/etc/php

但是这个目录不包含php.ini文件,只有:php.ini-development和php.ini-production。

在 mysqlnd 部分它说:

loaded plugins: mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_caching_sha2_password,auth_plugin_sha256_password

下面的代码,报告mysqli没有加载。

    if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) {
    echo 'We don\'t have mysqli!!!';
} else {
    echo 'Phew we have it!';
}

我尝试了很多东西,但无法让它发挥作用。不知道我错过了什么......

【问题讨论】:

    标签: php docker mysqli


    【解决方案1】:

    在你的 Dockerfile 中添加这个:

    RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli
    

    或者运行镜像并在你的容器中执行:

    docker-php-ext-install mysqli 
    docker-php-ext-enable mysqli
    apachectl restart
    

    【讨论】:

    • 感谢,对于我正在运行的配置,我只需将 php.ini-production 复制到 php.ini。愚蠢,这太简单了。有点尴尬:-)
    • 在我的情况下工作。谢谢
    【解决方案2】:

    Pfff,愚蠢....对于我正在运行的配置,我只需将 php.ini-production 复制到 php.ini。愚蠢,这太简单了。有点尴尬 :-) 我花了 3 小时才弄明白。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-14
      • 2018-08-13
      • 1970-01-01
      • 2020-10-02
      • 2020-11-10
      • 2021-12-03
      • 2020-04-21
      相关资源
      最近更新 更多