可直接运行的多版本PHP共存的Docker环境,目前支持 php5.6 / php7.2 / php7.4 共存。
已经在公司推广使用,自己目前的开发环境就用的这一套,且已用一段时间。

项目地址:

https://github.com/qianyugang/docker-mutli-php-versions

文件结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
├── conf //配置文件
│ ├── nginx
│   │   ├── conf.d
│   │   │   ├── php56site.com.conf
│   │   │   ├── php72site.com.conf
│   │   │   └── php74site.com.conf
│   │   └── nginx.conf
│   └── php
│   ├── php-fpm.d
│   │   └── www.conf
│   └── php.ini
├── docker-compose.yml
├── log //日志文件
│ ├── nginx
│   │   ├── access.log
│   │   └── error.log
│   └── php-fpm
├── php
│   ├── php56
│   │   └── Dockerfile
│   ├── php72
│   │   └── Dockerfile
│   └── php74
│   └── Dockerfile
├── readme.md
└── site //网站目录
├── php56site
│   └── index.php
├── php72site
│   └── index.php
└── php74site
└── index.php

使用方法

启动:

1
docker-composer up -d

停止:

1
docker-composer stop

重启 nginx

1
docker-composer restart nginx

进入 php 容器

1
2
3
4
5
docker-compose exec php56 /bin/bash
docker-compose exec php72 /bin/bash
docker-compose exec php74 /bin/bash

注意事项

  • 本地host配置
    • host文件添加指向本地配置
  • PHP插件安装
    • 在对应PHP版本的Dockerfile文件中使用docker-php-ext-install安装
  • docker内网连接ip问题
    • 如果需要从内网中连接使用宿主机的ip,mac版本需要使用内置docker.for.mac.host.internal作为ip配置。
  • docker源问题
    • 可以添加国内源提速
  • 容器内域名请求
    • 使用network中的alias别名实现容器内域名请求

参考