[docker]搭建Php+Nginx+Mysql开发环境

本文档详细介绍了如何使用Docker拉取并创建PHP、Nginx和MySQL容器,包括配置文件挂载、容器间链接以及解决502错误。在配置过程中,通过容器IP替换Nginx配置中的localhost,实现了容器间的通信。此外,还展示了如何在PHP容器中安装扩展并更新配置,确保项目顺利运行。
摘要由CSDN通过智能技术生成

1、首先拉取php和nginx镜像

docker pull php:5.6-fpm

docker pull nginx

docker images

2、创建PHP、Nginx、Mysql容器

# 在本次实现中,需要创建一个php.ini文件,它在容器的/usr/local/etc/php目录下,由于需要# 挂载文件到容器中,因此,宿主机目录中需要创建一个/etc/php.ini文件

# 第一个挂载目录是稍后宿主机代码放的位置

# 第二个挂载就是php的配置文件,可以先创建一个空的文件

docker run -d -p 9000:9000 -v /webroot:/webroot -v /etc/php.ini:/usr/local/etc/php/php.ini --name php php:5.6-fpm

#启动PHP容器

docker start php

#将容器中的配置文件拷贝到本地

docker php:/usr/local/etc/php/php.ini-development  /etc/php.ini

#########################################################################

接下来,该创建Nginx容器了,该容器需要依赖PHP,所以要用到 --link 参数

docker run --name nginx -p 8888:80 -d -v /webroot:/webroot -v /etc/nginx/conf.d:/etc/nginx/conf.d --link php:php nginx  

docker start nginx 

#关于Nginx的配置挂载稍后再进行细化。、

#########################################################################

docker pull mysql:8.0.28

docker run -d -p 3306:3306 -v /var/log/mysql:/var/log -v /var/lib/mysql:/var/lib/mysql -v /etc/my.cnf:/etc/my.cnf --name mysql -e MYSQL_ROOT_PASSWORD=root mysql:8.0.28

docker start mysql

docker exec -it mysql /bin/bash

 

#创建远程链接用户密码

create user 'tester'@'%' identified by 'root'

grant all privileges on *.* to 'tester'@'%';

 

#修改链接用户的密码

alter user 'tester'@'%' identified by 'root123' password expire never;

#允许Navicat低版本链接,因为加密方式不同,不设定无法连接。

ALTER USER 'tester'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

3、当容器都启动后,发现运行并不顺畅,访问会出现502 Bad Way,根据错误信息应该是转到cgi出问题了,经过一番摸索,发现nginx监听的是127.0.0.1:9000,并没有成功转发到PHP容器。

那么我们不如查看下容器各自的IP,看看有没有什么猫腻呢?

docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

经过上面指令,发现各个容器之间形成了一个小型局域网,所以我想应该是把nginx配置文件中,cgi监听部分的127.0.0.1:9000更换成 PHP容器局域网IP:9000。

换上后,重启Nginx容器,访问正常。

4、因为项目中需要安装一些其他的PHP扩展,所以演示一遍

docker exec -it php /bin/bash

wget xxxxx  //扩展链接

phpize

./configure

make

make install

然后将生成的 xxx.so文件拷贝到php.ini中配置的extension_dir目录下,重启容器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值