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)
AI 代码解读

执行 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
AI 代码解读

启动nginx

# webserver start
Starting PHP-FPM (PHP version 5.3) server.
Starting Nginx server.
Done.
AI 代码解读

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

目录
打赏
0
0
0
0
4
分享
相关文章
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
本文介绍了如何在服务器上搭建NTQQ机器人,通过官方NTQQ对接各框架,实现QQ登录的稳定运行。文章提到了需要准备一台服务器和相应的软件,并详细描述了通过SSH链接服务器、创建文件夹和配置文件、编辑配置文件地址端口、运行容器等步骤。同时,文章还介绍了VNC连接的使用和配置,以及使用watchtower进行NTQQ的更新。文章总结起来就是在服务器上搭建NTQQ机器人,实现QQ登录的稳定性和自动登录功能,同时提供了更新和维护的方法。
314 3
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
|
20天前
|
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
70 20
如何学习PHP编程?
【10月更文挑战第2天】如何学习PHP编程?
60 9
Xdebug 在不同版本的 PHP 中配置方法有什么不同?
Xdebug 在不同版本的 PHP 中配置方法有什么不同?
299 4
如何查看docker版本|12
如何查看docker版本|12
91 2
求助,有没有大神可以找到arm64架构下mongodb的3.6.8版本的docker镜像?
在Docker Hub受限的情况下,寻求适用于ARM架构的docker镜像资源或拉取链接,以便在x86架构上获取;内网中的机器为ARM架构,因此优先请求适合ARM的Docker镜像或Dockerfile,非常感激您的帮助。
php语言学习
【9月更文挑战第1天】php语言学习
54 3
|
6月前
|
如何开始学习PHP?
【9月更文挑战第1天】如何开始学习PHP?
83 1
|
7月前
|
Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程
【8月更文挑战第27天】本文介绍两种禁用PHP执行的方法:使用`PHP_diseval_extension`禁用和通过`suhosin`禁用。由于`suhosin`不支持PHP8,仅适用于PHP7及以下版本,若服务器安装了PHP5.6,则需对应安装`suhosin-0.9.38`版本。文章提供了详细的安装步骤,并强调了宝塔环境下与普通环境下的PHP路径差异。安装完成后,在`php.ini`中添加`suhosin.so`扩展并设置`executor.disable_eval = on`以禁用执行功能。最后通过测试代码验证是否成功禁用,并重启`php-fpm`服务生效。
111 2
React Server Component 使用问题之怎么使用Docker运行PHP应用
React Server Component 使用问题之怎么使用Docker运行PHP应用

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等