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

Docker搭建PHP+MySQL环境报PDO could not find driver错误求助

解决方案

你遇到的报错由两处配置错误共同导致,按以下步骤修正即可:

1. 持久化安装PDO MySQL扩展

你手动在运行容器内执行的docker-php-ext-enable命令是临时生效的,容器重启/重建后配置会丢失,且官方PHP镜像需要先安装扩展再启用,需要修改Dockerfile将扩展安装逻辑固化到镜像里:

FROM php:7.4.24-apache
RUN apt-get update -y && apt-get upgrade -y
# 安装pdo_mysql扩展所需依赖和扩展本身
RUN apt-get install -y libpq-dev && docker-php-ext-install pdo_mysql
RUN apt-get install tree nano -y

修改完成后重新构建服务并启动:

docker-compose build www && docker-compose up -d

2. 修正数据库连接端口配置

docker-compose.yml中db服务的端口映射3307:3306是宿主机到容器的映射,同一Docker网络内的www容器访问db服务时,需要使用db容器的内部端口3306,而非宿主机映射的3307。
修改connection.php中的端口配置:

// 原来的错误配置
// $port = 3307;
// 修正为容器内部端口
$port = 3306;

验证方法

进入www容器执行以下命令,确认扩展正常启用:

docker exec -it playpen_www php -m | grep pdo

输出包含pdo_mysql即代表配置生效,此时再访问业务代码即可正常连接数据库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:09:03