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


轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/479712.html
標籤:Linux
上一篇:Ubuntu的一些軟體源
下一篇:Centos7 安裝 MPICH
