在 docker php 容器中找不到 MySQLi
Posted
技术标签:
【中文标题】在 docker php 容器中找不到 MySQLi【英文标题】:MySQLi not found in docker php container 【发布时间】:2019-04-04 10:24:29 【问题描述】:错误:
致命错误:未捕获的错误:在 /var/www/html/index.php:16 中找不到类 'mysqli' 堆栈跟踪:在线 /var/www/html/index.php 中抛出 #0 main 16
我制作了index.php文件和PDO mysql连接示例代码。一切都按预期工作,除了 MySQLi 连接。我在 docker 文件中添加了 docker-php-ext-install 运行命令,但这并没有帮助。
这是我的 PHP docker 文件:
FROM php:7.0-fpm
RUN docker-php-ext-install pdo pdo_mysql mysqli
RUN docker-php-ext-enable mysqli
我的 docker-compose.yml 文件:
nginx:
build: ./nginx/
container_name: nginx-container
ports:
- 8080:80
links:
- php
volumes_from:
- app-data
php:
build: ./php/
container_name: php-container
expose:
- 9000
links:
- mysql
volumes_from:
- app-data
app-data:
#image: php:7.0-fpm
build: ./php/
container_name: app-data-container
volumes:
- ./www/html/:/var/www/html/
- ./nginx/nginx:/etc/nginx/conf.d
command: “true”
mysql:
#image: mysql:5.7
build: ./mysql/
container_name: mysql-container
expose:
- 3306
ports:
- 3306:3306
volumes_from:
- mysql-data
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: zavrel_db
MYSQL_USER: user
MYSQL_PASSWORD: password
mysql-data:
image: mysql:latest
container_name: mysql-data-container
volumes:
- /var/lib/mysql
command: "true"
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin-container
ports:
- 8888:80
links:
- mysql
environment:
PMA_HOST: mysql
谢谢。
【问题讨论】:
【参考方案1】:尝试更改数据包名称
php-mysqli
【讨论】:
不幸的是没有帮助。我在网上看的,大家都用不用php前缀的。【参考方案2】:我通过删除所有图像和容器解决了这个问题。在那之后,我开始了,一切都很好。
docker rmi $(docker images -a -q)
docker rm $(docker ps -a -q)
【讨论】:
你救了我!我不知道我做错了什么。您的解决方案解决了我的问题。【参考方案3】:我发现了问题,包是RUN pdo_mysqli
so
我已经在我的 docker-compose 中添加了这个 RUN docker-php-ext-install pdo_mysqli
【讨论】:
以上是关于在 docker php 容器中找不到 MySQLi的主要内容,如果未能解决你的问题,请参考以下文章
Python 脚本在 docker 容器中找不到使用 CRON 运行的 ENV 变量
lsb_release:在最新的 Ubuntu Docker 容器中找不到命令
运行docker容器时出错:启动容器进程导致“exec:”python “:$ PATH中找不到可执行文件”:未知