php - PDO 找不到驱动程序 (DOCKER)
问题描述
我有以下 docker.yml 文件
version: "3"
services:
wwww:
build: .
ports:
- "8888:80"
volumes:
- "./src:/var/www/html/"
networks:
- default
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: example
adminer:
image: adminer
restart: always
ports:
- 8060:8080
php的docker文件是
FROM php:7.2-apache
RUN docker-php-ext-install mysqli pdo pdo_mysql
我检查phpinfo()
并为 sqlite 启用了 pdo 驱动程序。
即使我执行 docker-compose 我也会收到以下警告
warning: pdo (pdo.so) is already loaded!
但是,我仍然得到一个未找到 pdo 的异常。
有什么我想念的吗?
确切的错误是
Fatal error: Uncaught PDOException: could not find driver in /var/www/html/index.php:5
Stack trace:
#0 /var/www/html/index.php(5): PDO->__construct('mysql:host=127....', 'root', 'example')
#1 {main} thrown in /var/www/html/index.php on line 5
解决方案
您好 Orestis,欢迎来到堆栈溢出!我已经运行了您Dockerfile
并启动了 PDO 连接,并且得到了正确的行为。
您是否正在运行旧版本的过时映像Dockerfile
?你能尝试用Dockerfile
上面的方法重建你的形象吗?根据您的说法,您docker-compose.yml
应该可以在项目中使用此命令:
docker-compose build wwww
这是我对你的快速测试Dockerfile
,这对我来说似乎没问题:
启用pdo_mysql (正确的行为,因为没有服务器运行):
Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] Connection refused in /var/www/html/test.php:3
Stack trace:
#0 /var/www/html/test.php(3): PDO->__construct('mysql:host=127....', 'user', 'password')
#1 {main}
thrown in /var/www/html/test.php on line 3
禁用pdo_mysql (正确,因为我手动删除了扩展名):
Fatal error: Uncaught PDOException: could not find driver in /var/www/html/test.php:3
Stack trace:
#0 /var/www/html/test.php(3): PDO->__construct('mysql:host=127....', 'user', 'password')
#1 {main}
thrown in /var/www/html/test.php on line 3
请让我知道重建您的图像是否解决了问题。
推荐阅读
- azure-machine-learning-service - 如何从 UI 取消正在运行的作业?
- amazon-web-services - AWS Appsync - listTodos 函数返回“未定义”错误
- selenium - ChromeDriver 更新到较新版本后,Actions 类无法正常工作
- python - 使用python在队列中运行一个又一个进程
- apache - 无法将我的带有 .app 扩展名的 DNS 连接到我的 apache 服务器
- amazon-web-services - API Gateway DynamoDB 跨账户集成
- python-3.x - 一流的指导 - 双链表
- c# - 从 Visual Studio 2017 内部查看内置函数的源代码?
- css - 如何获得 Bootstrap .card 身体的第 n 个孩子
- excel - 当不同计算机访问 vm 时,托管 vm 上 azure devops 代理的不同行为