基于Docker的Nginx、PHP-FPM环境搭建

/home/user/docker_compose/下创建目录:

nginx_phpfpm
    ├── nginx
    │   ├── config
    │   │   └── conf.d
    │   ├── html
    │   └── logs
    └── php-fpm

搭建Nginx环境

  1. 拷贝文件:
docker pull nginx:1.23
docker run -d --name nginx nginx:1.23
docker cp nginx:/etc/nginx/nginx.conf /home/user/docker_compose/nginx_phpfpm/nginx/config
docker cp nginx:/etc/nginx/conf.d /home/user/docker_compose/nginx_phpfpm/nginx/config
docker cp nginx:/usr/share/nginx/html/ /home/user/docker_compose/nginx_phpfpm/nginx/  #可选
docker stop nginx
docker rm nginx
  1. /home/user/docker_compose/nginx_phpfpm/nginx/config/conf.d下配置test.conf文件:
server {
    listen 8105;
    listen  [::]:8105;
    server_name  localhost;

    root /usr/share/nginx/html/test;
    location / {
        index  index.php;
    }

    location ~ \.php$ {
        fastcgi_pass   php-fpm:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
  1. /home/user/docker_compose/nginx_phpfpm/nginx/html/test下创建info.php文件:
<?php
phpinfo();
?>

搭建PHP环境

  1. 拷贝文件:
docker pull bitnami/php-fpm:8.1.8
docker run -d --name php-fpm bitnami/php-fpm:8.1.8
docker cp php-fpm:/opt/bitnami/php/etc /home/user/docker_compose/nginx_phpfpm/php-fpm
docker stop php-fpm
docker rm php-fpm

(注意:如若不使用容器,安装php的包为apt-get install php7.4 php7.4-fpm php7.4-mysql php7.4-gd php7.4-mbstring

  1. 编辑文件/home/user/docker_compose/nginx_phpfpm/php-fpm/php-fpm.d/www.conf.default
sed -i "s/listen = 127.0.0.1:9000/listen = 0.0.0.0:9000/g" www.conf.default

使用docker-compose编排容器

  1. /home/user/docker_compose/nginx_phpfpm目录下创建docker-compose.yaml如下:
version: "3.7"
services:
    nginx:
        image: nginx:1.23
        container_name: "nginx"
        restart: always
        ports:
            - "8103:443"
            - "8104:80"
            - "8105:8105"
            - "8106:8106"
        depends_on:
            - "php-fpm"
        volumes:
            - "/home/user/docker_compose/nginx_phpfpm/nginx/html:/usr/share/nginx/html"
            - "/home/user/docker_compose/nginx_phpfpm/nginx/config/nginx.conf:/etc/nginx/nginx.conf"
            - "/home/user/docker_compose/nginx_phpfpm/nginx/config/conf.d:/etc/nginx/conf.d"
            - "/home/user/docker_compose/nginx_phpfpm/nginx/logs:/var/log/nginx"
        networks:
            - net-nginx-phpfpm
    php-fpm:
        image: bitnami/php-fpm:8.1.8
        container_name: "php-fpm"
        restart: always
        ports:
            - "9000:9000"
        volumes:
            - "/home/user/docker_compose/nginx_phpfpm/php-fpm:/opt/bitnami/php/etc"
            - "/home/user/docker_compose/nginx_phpfpm/nginx/html:/usr/share/nginx/html"
        networks:
            - net-nginx-phpfpm
networks:
    net-nginx-phpfpm:
  1. /home/user/docker_compose/nginx_phpfpm目录下使用命令docker-compose up -d,并可使路由器映射8104、8105端口,访问ip:8104ip:8105/info.php查看效果。

最终目录结构:

nginx_phpfpm
    ├── docker-compose.yaml
    ├── nginx
    │   ├── config
    │   │   ├── conf.d
    │   │   │   ├── default.conf
    │   │   │   └── test.conf
    │   │   └── nginx.conf
    │   ├── html
    │   │   ├── 50x.html
    │   │   ├── index.html
    │   │   └── test
    │   │       └── info.php
    │   └── logs
    └── php-fpm
        ├── common.conf
        ├── conf.d
        ├── environment.conf
        ├── pear.conf
        ├── php-fpm.conf
        ├── php-fpm.conf.default
        ├── php-fpm.d
        │   ├── www.conf
        │   └── www.conf.default
        ├── php.ini
        ├── php.ini-development
        └── php.ini-production
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值