docker容器php-fpm 访问容器 mysql,报:网页无法成功运行

因为换工作,这周休息在家。想利用空余时间,把discuz论坛迁移到docker中。其中遇到一个问题:php-fpm私活不能访问数据库。而且没有日志,页面仅报:网页无法成功运行。网上查了好多资料,有说:php-fpm 使用www-data用户运行,权限不够;有说: 容器之间网络问题。由于没有日志文件,所有很难确定原因。经过3-4天的研究,今天突然看到一个帖子,提示:docker官方的php镜像好多扩展模块没有打进去。我想会不会是mysql模块没有打进到php镜像中呢?带着疑问,搜索了另一个镜像:devilbox/php-fpm;此镜像把一些常用的动态扩展模块,如:mysql,redis 都进行了打包。废话少说:上码:

1.下载镜像

docker pull devilbox/php-fpm:5.6-prod

2.创建容器:

测试1(使用mysqllink)
docker run -d --name php -p 9000:9000 \
-e "DOCKER_LOGS=1" \
-v $PWD/www1:/var/www/default/htdocs \
-v $PWD/logs:/var/log/php \
--link mysql_3306:db devilbox/php-fpm:5.6-prod

3.测试页面:testdb.php

<?php
$link = mysql_connect("db","craftman","123456");
if(!$link) echo "FAILD!连接错误,用户名密码不对";
else echo "OK!可以连接";
?>

php-fpm 和 nginx 的容器通信,不在此文章讨论范围,请自行百度;

4.经过访问:http://bbs.i5i5.top/testdb.php (需要访问自己的php页面)

结果访问成功,最终问题解决。

问题原因:官方php 镜像没有包含mysql扩展包!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绿竹痕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值