对很多程序员来说,项目累积多了,每个项目需要不同版本的开发环境是非常正常的。此篇讲解使用docker-compose 安装多个版本的php环境,docker-compose 基础知识需自行了解。

docker-compose.yml 文件配置。

version: '3.3'
services:php72-fpm:build: ./php72     // php72版本 (复制请把注释去掉)ports:- "9003:9000"    // 由于底下另一版本占用9000端口,此处用9003映射links:- mysql-write:mysql-write // mysql容器连接- redis-db:redis-db       // redis容器连接volumes:                    // 数据卷映射存储(自己没有的东西要去掉哦)- ../Site:/data/www:rw- ./php72/cert:/data/cert:ro- ./php72/php-fpm.d:/usr/local/etc/php-fpm.d:rw- ./php72/php-fpm.conf:/usr/local/etc/php-fpm.conf:ro- ./php72/php-dev.ini:/usr/local/etc/php/php.ini:ro- ../logs/php-fpm:/var/log/php-fpm:rw- ./php72/.ssh:/home/www/.ssh:ro- ./php72/supervisor.conf:/etc/supervisor/conf.d:ro- ../logs/socket:/var/log/socket:rw- ../logs/queue:/var/log/queue:rwenvironment:XDEBUG_CONFIG: remote_host=host.docker.internalrestart: alwayscommand: php-fpmphp-fpm:build: ./php74    // php74版本ports:- "9000:9000"- "9501:9501"- "9502:9502"links:- mysql-write:mysql-write- redis-db:redis-dbvolumes:- ../Site:/data/www:rw- ./php74/cert:/data/cert:ro- ./php74/php-fpm.d:/usr/local/etc/php-fpm.d:rw- ./php74/php-fpm.conf:/usr/local/etc/php-fpm.conf:ro- ./php74/php-dev.ini:/usr/local/etc/php/php.ini:ro- ../logs/php74-fpm:/var/log/php-fpm:rw- ./php74/.ssh:/home/www/.ssh:ro- ./php74/supervisor.conf:/etc/supervisor/conf.d:ro- ../logs/socket:/var/log/socket:rw- ../logs/queue:/var/log/queue:rwenvironment:XDEBUG_CONFIG: remote_host=host.docker.internalrestart: alwayscommand: php-fpmnginx:build: ./nginxdepends_on:- php-fpmlinks:- php-fpm:php-fpmvolumes:- ../Site:/data/www:rw- ./nginx/conf.d:/etc/nginx/conf.d:ro- ./nginx/cert:/etc/nginx/cert:ro- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro- ./nginx/phpcgi.conf:/etc/nginx/phpcgi.conf:ro- ./nginx/fastcgi.conf:/etc/nginx/fastcgi.conf:ro- ./nginx/pathinfo.conf:/etc/nginx/pathinfo.conf:ro- ../logs/nginx:/var/log/nginxports:- "80:80"- "443:443"- "8081:8081"restart: alwayscommand: nginx -g 'daemon off;'mysql-write:build: ./mysql-writeports:- "3306:3306"volumes:- ../data/mysql-write:/var/lib/mysql:rw- ../logs/mysql-write:/var/lib/mysql-logs:rw- ./mysql-write/my.cnf:/etc/mysql/my.cnf:ro- ./mysql-write/conf.d:/etc/mysql/conf.d:roenvironment:MYSQL_ROOT_PASSWORD: 666666restart: alwayscommand: "--character-set-server=utf8"

编辑完成,在docker-compose.yml文件的目录下,运行docker-compose up -d即可。

项目绑定对应php版本

在对应项目的nginx配置文件中配置如下:

server {listen 80;server_name sanwu.document.com;root  /data/www/cloud-document-server/public;index index.php index.html index.htm;try_files $uri $uri/ @rewrite;location ~ \.php(.*)$ {fastcgi_pass php72-fpm:9000; // 绑定对应php版本include pathinfo.conf;include fastcgi.conf;}location @rewrite {if (!-e $request_filename) {rewrite  ^(.*)$  /index.php?s=/$1  last;break;}  }location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {}location ~ /\.ht {deny all;}
}

docker-compose 安装多版本php相关推荐

  1. 使用Docker Compose安装mysql

    使用Docker Compose安装mysql 1运行 安装 Docker Compose 运行以下命令以下载 Docker Compose 的当前稳定版本:$ sudo curl -L " ...

  2. 如何使用Docker Compose安装Drupal

    The author selected United Nations Foundation to receive a donation as part of the Write for DOnatio ...

  3. Docker Compose安装以及入门

    Docker 安装 脚本安装 自定义脚本 wget https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/stable/Packages ...

  4. docker compose 安装es和kibana

    docker compose 安装es和kibana 准备工作 创建es数据存放目录 mkdir /root/app/elk/es/data 增加目录权限 不增加权限,es有可能启动不起来 chmod ...

  5. docker compose安装elasticsearch

    docker compose安装 elasticsearch 安装 创建目录 es: mkdir es cd es 创建挂载目录 data mkdir data 创建 docker-compose.y ...

  6. docker compose安装_docker stack,docker-compose前世今生

    回顾 <docker-compose真香>详细讲述docker-compose容器编排工具的用法,实际上容器编排yml文件在进化到版本3的时候,docker-compose更像是被定义为 ...

  7. Docker 及 Docker Compose 安装及使用教程 (2020版)

    文章目录 图文详细教程 1 Docker原理 2 Docker安装 3 镜像(Image) 3.1 获取镜像 3.2 查找拖取镜像 3.3 列出镜像 3.4 删除镜像 3.5 创建的镜像 4 容器(C ...

  8. 04@Docker Compose安装Compose模板文件的使用

    文章目录 Docker Compose 一.Docker Compose的介绍 1.Compose概述 2.Docker与Docker Compose区别 二.Docker Compose的安装 1. ...

  9. Docker Compose安装

    一 .  Docker Compose概述 Docker Compose是一个用于定义和运行多个容器Docker应用程序的工具.使用Compose,您可以使用YAML文件来配置应用程序的服务.然后 , ...

  10. Docker Compose 安装

    官方教程 https://docs.docker.com/compose/install/ 为什么有这篇博客 Docker Compose 并不能通过 yum 安装,所以每次安装还需要找来找去,不如先 ...

最新文章

  1. 外包程序员是如何花 5 年时间从月薪 4 千到年薪近百万?
  2. 一些知识点的初步理解_4(协方差矩阵,ing...)
  3. framework之Activity启动流程(基于Android11源码)
  4. LeetCode Divide Two Integers(不使用乘、除,求模来计算商)
  5. java集合框架介绍_Java集合框架介绍
  6. An example of using Pandas for regression
  7. [蓝桥杯][2018年第九届真题]全球变暖
  8. 明小子动力上传拿webshell(1).zip
  9. 6410的系统时钟设置(上)---6410时钟控制逻辑框架分析
  10. 外键mysql缺省级联_mysql的外键约束级联修改和删除整理
  11. 当Python列表遇上复合赋值运算符+=
  12. js 接收 json格式的字符串
  13. 用php写一个user类,使用php怎么编写一个用户查询类
  14. 史上最全SQL基础知识总结(理论+举例)
  15. 不透明度对应的16进制转换
  16. matlab 图片字符切割,基于MATLAB的图片中字符的分割与识别
  17. SND: 项目发布时Owning ClassInfo is null for property: private问题原因排查与解决
  18. c语言编程难学么,C语言编程学习难吗?
  19. 【Unity基础】人物控制的三种方式(键盘)、(鼠标)、(键鼠)
  20. Java微信公众号开发之微信公众平台接入开发者

热门文章

  1. AT2657 Mole and Abandoned Mine
  2. 递归和回溯相关面试算法总结
  3. Fortran笔记,文件,part2-顺序/直接访问文件,二进制文件
  4. 内网穿透 NPS工具实现内网穿透
  5. python中cos函数_Python代码中cos()函数有什么功能呢?
  6. win32中如何区别“鼠标单击”和 “鼠标双击”
  7. 若依Activiti工作流入门
  8. ap模式和sta模式共存_ESP8266 RTOS 开发笔记(1)STA+AP模式(共存)
  9. 贪吃蛇项目面试C语言,【游戏数组面试题】面试问题:c语言版贪吃蛇… - 看准网...
  10. 图像处理之Gamma校正