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/dock ...
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界面即為成功