php:7.0-apache容器中mysqli_connect()未定义错误求助
解决PHP 7.0-Apache Docker容器中
mysqli_connect()未定义的问题 看起来你已经尝试过安装mysqli扩展,但可能是步骤没做全或者方式不对——在官方php:7.0-apache镜像里,安装PHP扩展有专门的脚本,手动安装系统包有时候会遗漏启用步骤。下面给你两种可靠的解决办法:
方法一:在运行中的容器内修复
- 先进入你的容器(替换成你的容器名称或ID):
docker exec -it [容器名/ID] /bin/bash - 使用官方提供的脚本安装并启用mysqli扩展:
docker-php-ext-install mysqli docker-php-ext-enable mysqli - 重启Apache服务让配置生效:
service apache2 restart
方法二:通过Dockerfile构建带扩展的镜像(推荐)
如果不想每次启动容器都手动操作,可以直接构建包含mysqli扩展的自定义镜像,步骤如下:
- 在本地创建一个
Dockerfile,内容如下:FROM php:7.0-apache # 安装并启用mysqli扩展 RUN docker-php-ext-install mysqli RUN docker-php-ext-enable mysqli - 构建镜像:
docker build -t my-php7-apache . - 用新镜像启动容器(替换本地代码目录路径):
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
相关产品推荐
相关产品推荐

