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;
}
示例如下注意缩进
创建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界面即为成功