Docker compose 部署 nginx+php

Docker compose 部署 nginx+php

拉取Docker镜像

docker pull nginx:1.21.6
docker pull php:7.4.28-fpm

创建docker-compose 目录

在home目录下创建docker-nginx

mkdir /home/docker-nginx  #创建目录
cd /home/docker-nginx     #进入目录

拷贝配置文件到宿主机

#拷贝 nginx的配置文

docker run -d --name nginx nginx
docker cp nginxtest:/etc/nginx ./
docker cp nginxtest:/var/log ./
docker rm -f nginx

拷贝 php的配置文件

docker run -d --name php php:7.4.28-fpm
docker cp phptest:/usr/local/etc/php ./
docker rm -f php

更改配置文件

配置内容参见:https://blog.csdn.net/qq_43534481/article/details/124916254?spm=1001.2014.3001.5501

配置php.ini

cd /home/docker-nginx/php #进入php目录
mv php.ini-development php.ini  #重命名php.ini-development为php.ini
sed -i "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g" php.ini #替换字符串;cgi.fix_pathinfo=1 为 cgi.fix_pathinfo=0

配置default.conf

cd /home/docker-nginx/nginx/conf.d  #进入目录
在default.conf的server块底部添加如下代码
    location ~ \.php$ {
        root           html;
        fastcgi_pass   php:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /home/www$fastcgi_script_name;
        include        fastcgi_params;
    }

示例如下注意缩进

image

创建web根目录

mkdir /home/docker-nginx/www  #创建目录
echo  '<script>alert('installation complete')</script>' > index.html  #创建index.html文件并写入内容
echo  '<?php phpinfo();?>' > index.php				      #创建index.php文件并写入内容

编写yaml文件

在 /home/docker-nginx目录下创建一个docker-compose.yaml 文件

touch /home/docker-nginx/docker-compose.yaml  #创建文件

将以下内容写入docker-compose.yaml

version: "3"
services:
    nginx:
        image: nginx:1.21.6
        container_name: "vps-nginx"
        restart: always
        ports:
            - "80:80"
            - "443:443"
        depends_on:
           - "php"
        volumes:
           - "/home/docker-nginx/nginx:/etc/nginx"
           - "/home/docker-nginx/log:/var/log"
           - "/home/docker-nginx/www:/home/www"
        networks:
           - net-app
    php:
        image: php:7.4.28-fpm
        container_name: "vps-php"
        restart: always
        ports:
            - "9000:9000"
        volumes:
            - "/home/docker-nginx/www:/home/www"
            - "/home/docker-nginx/php:/usr/local/etc/php"
        networks:
           - net-app
networks:
    net-app: 

环境上线

docker-compose up -d

验证结果

访问host首页弹窗访问host/index.php显示phpinfo界面即为成功

image

image

posted @ 2022-05-22 23:49  苦蛇  阅读(1229)  评论(0编辑  收藏  举报