在/home/user/docker_compose/
下创建目录:
nginx_phpfpm
├── nginx
│ ├── config
│ │ └── conf.d
│ ├── html
│ └── logs
└── php-fpm
搭建Nginx环境
- 拷贝文件:
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
- 在
/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;
}
}
- 在
/home/user/docker_compose/nginx_phpfpm/nginx/html/test
下创建info.php
文件:
<?php
phpinfo();
?>
搭建PHP环境
- 拷贝文件:
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
)
- 编辑文件
/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编排容器
- 在
/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:
- 在
/home/user/docker_compose/nginx_phpfpm
目录下使用命令docker-compose up -d
,并可使路由器映射8104、8105端口,访问ip:8104
、ip: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