使用docker搭建php-fpm+nginx环境

在服务器中,docker可以帮我我们快速搭建lnmp运行环境,在容器中的任何操作都对宿主无任何影响。本文使用docker 创建多个容器(mysql,php-fpm,nginx)搭建lnmp运行环境。

由于三个容器是要通信的,所以要按照mysql,php-fpm,nginx的顺序依次创建容器。

步骤

1、拉取镜像

//mysql镜像,这里选用5.7版本
docker pull image mysql:5.7

//php-fpm镜像,这里用7.3版本
doker pull php:7.3-fpm

//nginx镜像,这里用1.17.5版本
docker pull nginx:1.17.5

//查看所有的镜像
[root@hzj ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               5.7                 d5cea958d330        4 days ago          440MB
php                 7.3-fpm             c926fc177576        4 days ago          398MB
redis               latest              44d36d2c2374        3 weeks ago         98.2MB
nginx               1.17.5              540a289bab6c        4 months ago        126MB

2、创建mysql容器

sudo docker run \
--name mysql5.7 \
--restart always \
--privileged=true \
-p 4306:3306 \
-v /opt/mysql/config/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
-v /var/mysql/data:/var/lib/mysql \
-e MYSQL_USER="user_name" \
-e MYSQL_PASSWORD="user_password" \
-e MYSQL_ROOT_PASSWORD="root_password" \
-d mysql:5.7

参数说明:

  • –name :指定容器名称
  • –restart always:开启启动
  • –privileged=tree:给容器操作权限
  • -p:4306:3306:宿主4306端口映射容器的3306端口
  • -v dir1:dir2 :宿主dir1映射到容器dir2目录
  • -e MYSQL_USER:设置用户名
  • -e MYSQL_PASSWORD:设置密码
  • -e MYSQL_ROOT_PASSWORD:设置root用户密码
  • -d:后台运行

注意

  • mysql的数据一定要挂载本地,防止删除容器后丢失数据。
  • my.cnf配置文件也可以挂载本地的。

3、创建php-fpm容器

sudo docker run \
--name php-fpm \
--link=mysql:mysql \
-d -p 9000:9000 \
-v /home/wwwroot:/home/wwwroot \
-v /home/wwwlogs:/home/wwwlogs \
-v /tmp:/tmp \
-v /etc/localtime:/etc/localtime\
--privileged=true \
php:7.3-fpm

参数说明:

  • –link=mysql:mysql2:连接mysql容器,容器内别名为mysql2
  • -v /home/wwwroot:/home/wwwroot :代码文件映射到容器内
  • -v /etc/localtime:/etc/localtime: 容器和宿主时间同步

4、创建ngixn容器

sudo docker run 
--name nginx \ 
--link=mysql:mysql \
--link=php:phpfpm \
-d -p 80:80 \
-v /home/wwwroot:/home/wwwroot \
-v /tmp:/tmp \
-v /var/log/nginx:/var/log/nginx  \
nginx:1.17.5

修改配置文件
由于这里的nginx和php-fpm不在同一个容器中,需要修改站点配置文件,转发请求到php-fpm容器。

主要修改项:

server_name test.com;//域名

location / {
        root   /home/wwwroot;//php代码存放目录
        index  index.php index.html index.htm;//首页文件index.php
	    #try_files $uri $uri/ /index.php?$query_string;
    }
location ~ \.php$ {
        root           html;
        fastcgi_pass   php:9000;//转发请求,可以使用php-fpm容器名称,也可以用别名,端口保持一致,否则请求处理不了。
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /home/wwwroot/$fastcgi_script_name;//前面写php-fpm容器中代码存储目录
        include        fastcgi_params;
    }
  • 修改完配置文件,使用service nginx configtest命令检查是否有语法错误。确认无误后,使用service nginx reload重新加载配置文件

至此,php-fpm环境搭建完毕。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值