You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

php:7.0-apache容器中mysqli_connect()未定义错误求助

解决PHP 7.0-Apache Docker容器中mysqli_connect()未定义的问题

看起来你已经尝试过安装mysqli扩展,但可能是步骤没做全或者方式不对——在官方php:7.0-apache镜像里,安装PHP扩展有专门的脚本,手动安装系统包有时候会遗漏启用步骤。下面给你两种可靠的解决办法:

方法一:在运行中的容器内修复

  1. 先进入你的容器(替换成你的容器名称或ID):
    docker exec -it [容器名/ID] /bin/bash
    
  2. 使用官方提供的脚本安装并启用mysqli扩展:
    docker-php-ext-install mysqli
    docker-php-ext-enable mysqli
    
  3. 重启Apache服务让配置生效:
    service apache2 restart
    

方法二:通过Dockerfile构建带扩展的镜像(推荐)

如果不想每次启动容器都手动操作,可以直接构建包含mysqli扩展的自定义镜像,步骤如下:

  1. 在本地创建一个Dockerfile,内容如下:
    FROM php:7.0-apache
    
    # 安装并启用mysqli扩展
    RUN docker-php-ext-install mysqli
    RUN docker-php-ext-enable mysqli
    
  2. 构建镜像:
    docker build -t my-php7-apache .
    
  3. 用新镜像启动容器(替换本地代码目录路径):
    docker run -d -p 80:80 -v /你的本地代码目录:/var/www/html my-php7-apache
    

你的错误详情:

Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in /var/www/html/login.php:8
Stack trace: #0 {main} thrown in /var/www/html/login.php on line 8

问题代码:

<?php 
$servername = "172.17.0.2:3306"; 
$username = "mysql_user"; 
$password = "mysql_password"; 
$dbname = "invoice"; 
// 创建连接
$conn = mysqli_connect($servername, $username, $password,$dbname); 
?>

内容的提问来源于stack exchange,提问作者Abhishek Parmar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:23:28