docker学习系列1 使用docker 快速实现多版本PHP
多谢此文:https://blog.eriksen.com.br/en/docker-image-multi-version-php-development
最近一个新的后台API项目需要运行在PHP5.3环境中,而无论是本地还是测试服务器都安装的是PHP7.x
PHP5.3官方已经不维护了,通过源码安装配置也很麻烦,我又不想污染了现有的环境。
所以想到了docker
我觉得docker适合以下情况:
- 运行特定的开发环境,比如要运行两个项目。一个要求PHP5.6,一个PHP7.0。不想来回切换。
- 喜欢尝鲜,折腾,docker有很强的隔离性。在docker里搞坏也不会破坏本地
新项目是基于 ThinkPHP3.2
想通过docker跑起来,可以按如下步骤:
安装 docker,略
记得一定要切换为国内源,不然速度巨慢,还容易报错,推荐免费的https://www.daocloud.io/mirror#accelerator-doc下载镜像
docker pull eriksencosta/php-dev
项目目录是已经存在的
路径是D:/projects/live-ranking-api
-
运行容器 其中参数:-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
打开浏览器输入
localhost:8088
正常的话项目已经成功跑起来了切换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
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Laravel - Artisan
0. 查看已有命令 php artisan list 1. 一般命令 命令 作用 参数 clear-compiled 清除已编译好的类文件 - down 使该项目进入 “维护模式” --message[=MESSAGE] 关于 “维护模式” 的信息--retry[=RETRY] 设置重新执行命令的时间(秒) env 查看项目所处环境(server) - help 输出某个命令的帮助信息 --format=FORMAT 以一定格式存储帮助信息(txt, xml, json, or md) [默认: "txt"]--raw 输出命令原生帮助信息 inspire 随机输出一条鼓励语句 - list 查看现有所有命令 同 help make (类别名) migrate 运行数据库迁移 --database[=DATABASE] 设置使用的数据库--force 在生产环境中强制运行命令--path[=PATH] 数据迁移文件执行路径--pretend 不执行 SQL 查询--seed 同时执行数据填充--step 强制执行迁移,可单独回滚 optimize 优化框架 --force 强制编译类文...
- 下一篇
《11招玩转网络安全》之第五招:DVWA命令注入
首先还是将DVWA的安全级别设置为Low,然后单击DVWA页面左侧的Command Injection按钮。 图5-1 Low级别的命令注入 这个就是最典型的命令注入接口。在文本框中输入一个IP地址,然后返回ping命令的结果,单击页面右下角的View Source按钮,查看页面的源码,如图5-2所示。 图5-2 Low级别命令注入源码 从图中可以看出,服务器对输入的参数没有做任何的检查,直接使用shell_exec里面执行了。使用者完全可以在IP后面构建任何命令进行注入。最简单的构建命令方法就是在IP后面添加&&符号,这个符号可以理解为逻辑运算与,Linux和Windows都是通用的。例如命令ping 127.0.0.1&&cat /etc/passwd可以理解为执行命令ping 127.0.0.1,当该命令可以正常返回时再执行命令cat /etc/passwd。 在页面的文本框中输入127.0.0.1 && cat /etc/passwd,返回的结果如图5-3所示。 图5-3 Low构建命令返回的结果 就是这么简单,基本上只要是权限允...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS关闭SELinux安全模块
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Hadoop3单机部署,实现最简伪集群