Docker搭建多版本PHP环境

最近由于项目需要,需要同时启动多个项目,但是一个项目是php5.6,一个项目是php7.4,还有一个是php8.0,但是我需要同时运行,所以需要搭建一个多版本的开发环境,基于此自己实现了一个dnmp


DNMP是基于docker部署的Nginx、PHP、MySQL开发环境

  1. 支持php5.6、php7.0、php7.1、php7.2、php7.3、php7.4、php8.0、php8.1同时运行并可直接项目指定PHP版本,已支持常见扩展,如bcmath、gd、opcache、pdo_mysql、zip、Redis、xdebug、swoole、MongoDB等,并且可通过对应的Dockerfile中按例添加自己所需要的扩展

  2. 支持MySQL5.6、MySQL5.7、MySQL8.0

一、快速使用

  1. clone项目:

     git clone https://github.com/soryetong/dnmp.git
  2. 数据配置

     cd dnmp
    
     # 准备env
     cp .env.example .env
    
     # 修改env内的内容
     # 不需要指定服务所运行的平台的话可以这样写
     # CONTAINER_PLATFORM=
  3. docker-compose编排

     # 建议命令
     # docker-compose up nginx phpVersion mysqlVersion -d
    
     docker-compose up nginx php7.4 mysql5.7 -d

    注意注意📢

    由于docker-compose.yml文件已经包含了上述的所有配置,所以不建议直接执行docker-compose up -d,建议先安装必要的php、MySQL版本(如第三步)

    如有需要再额外安装所需要的PHP即可,如docker-compose up php5.6 -d

  4. 服务访问

    在浏览器中访问:localhost 就可以看到默认的 phpinfo()

注意点

  1. nginx的default.conf中默认加载的是php7.4,所以在第一次编排时建议首先部署php7.4,如果不需要php7.4,那么需要先修改 ./config/nginx/conf.d/default.conf内的 fastcgi_pass 指向的PHP版本

  2. 受网络波动的影响,编排时失败可多重试几次

更多的详细可以 GitHub dnmp 上面查看


本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 1

大佬,你这也太麻烦了,我毛遂自荐下我们产品——[Servbay] (www.servbay.com), servbay直接一键安装PHP,需要切换版本的话,直接图形界面点击不同的版本号进行切换就行了。

1周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!