docker学习系列1 使用docker 快速实现多版本PHP

简介: 多谢此文:https://blog.eriksen.com.br/en/docker-image-multi-version-php-development最近一个新的后台API项目需要运行在PHP5.3环境中,而无论是本地还是测试服务器都安装的是PHP7.xPHP5.3官方已经不维护了,通过源码安装配置也很麻烦,我又不想污染了现有的环境。

多谢此文:https://blog.eriksen.com.br/en/docker-image-multi-version-php-development

最近一个新的后台API项目需要运行在PHP5.3环境中,而无论是本地还是测试服务器都安装的是PHP7.x
PHP5.3官方已经不维护了,通过源码安装配置也很麻烦,我又不想污染了现有的环境。
所以想到了docker
我觉得docker适合以下情况:

  1. 运行特定的开发环境,比如要运行两个项目。一个要求PHP5.6,一个PHP7.0。不想来回切换。
  2. 喜欢尝鲜,折腾,docker有很强的隔离性。在docker里搞坏也不会破坏本地

新项目是基于 ThinkPHP3.2
想通过docker跑起来,可以按如下步骤:

  1. 安装 docker,略
    记得一定要切换为国内源,不然速度巨慢,还容易报错,推荐免费的https://www.daocloud.io/mirror#accelerator-doc

  2. 下载镜像
    docker pull eriksencosta/php-dev

  3. 项目目录是已经存在的
    路径是 D:/projects/live-ranking-api

  4. 运行容器 其中参数:-p 端口映射 -v 挂载目录,冒号前是宿主机目录,后面的是容器内目录
    -t -i 参数 表示已交互方式运行容器,运行成功后会执行 /bin/bash 就是进去终端
    docker run -t -i -p 8088:80 -v D:/projects/live-ranking-api:/var/www -d "eriksencosta/php-dev:latest" /bin/bash

    img_00490d232df2597985b58b7234ea4222.png
    image.png

  5. 打开浏览器输入 localhost:8088 正常的话项目已经成功跑起来了

  6. 切换PHP版本,在容器内的终端内输入 phpenv命令 列出当前可选择的PHP版本

# phpenv versions
  5.3
  5.3.29
  5.4
  5.4.35
  5.5
  5.5.19
  5.6
* 5.6.3 (set by /opt/phpenv/version)

执行 phpenv global 5.4

# phpenv global 5.4
# php -v
PHP 5.4.35 (cli) (built: Dec 14 2014 00:35:12)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
    with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
    with Xdebug v2.2.6, Copyright (c) 2002-2014, by Derick Rethans

启动nginx

# webserver start
Starting PHP-FPM (PHP version 5.3) server.
Starting Nginx server.
Done.

参考:
https://hub.docker.com/r/eriksencosta/php-dev/
https://github.com/eriksencosta/silex-docker-example

相关文章
|
1月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
336 5
|
机器人 网络安全 数据安全/隐私保护
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
本文介绍了如何在服务器上搭建NTQQ机器人,通过官方NTQQ对接各框架,实现QQ登录的稳定运行。文章提到了需要准备一台服务器和相应的软件,并详细描述了通过SSH链接服务器、创建文件夹和配置文件、编辑配置文件地址端口、运行容器等步骤。同时,文章还介绍了VNC连接的使用和配置,以及使用watchtower进行NTQQ的更新。文章总结起来就是在服务器上搭建NTQQ机器人,实现QQ登录的稳定性和自动登录功能,同时提供了更新和维护的方法。
969 3
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
|
SQL 关系型数据库 MySQL
如何学习PHP编程?
【10月更文挑战第2天】如何学习PHP编程?
261 9
|
8月前
|
监控 关系型数据库 MySQL
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
591 30
|
9月前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
309 20
|
7月前
|
前端开发 Linux Docker
docker的安装使用0废话版本自学软硬件工程师778天
win11怎么安装docker的必要设置自学软硬件工程师778天
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
1384 3
|
存储 Ubuntu Linux
学习docker
学习docker
169 1
|
运维 Kubernetes 开发者
Docker Swarm学习
【10月更文挑战第5天】
182 3
|
Kubernetes Linux 持续交付
docker容器学习
【10月更文挑战第1天】
179 1