php - 如何解决 Uncaught Error : Class 'mysqli' not found

标签 php docker mysqli

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

运行了三个 docker 容器: - 一个正在运行 mysql - 一个正在运行 phpmyadmin (它与 mysql 数据库完美配合) - 其中一个正在运行 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-product。

在 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!';
}

我尝试了很多方法,但无法使其发挥作用。不知道我错过了什么......

最佳答案

将其添加到您的 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 - 如何解决 Uncaught Error : Class 'mysqli' not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61178567/

相关文章:

php - 为什么这个mysqli准备好的语句不起作用?

php - mysqli 是否存在限制使其不适合与 AMP 或 ReactPHP 一起使用?

php - 根据下拉列表中的选择选项选择 mysql 数据库

php - --shell 停止执行,适用于命令提示符、批处理文件、PHP exec() 等

php - Amazon RDS 和 Zend Framework 2

node.js - 为什么 NPM 在 Docker 容器中不可用

php - 大规模更新 MySQL 的最佳方法?

php - 按可用日期查询 woocommerce 预订

php - 如何使用 composer & docker 处理缺少的依赖项?

docker - 无法构建克隆的 Jekyll 站点 - jekyll 3.8.5 |错误 : Permission denied @ dir_s_mkdir -/srv/jekyll/_site