PHP 开发者的 Docker 之旅

用 PHP 作为我们「Docker 开发大礼包」开篇是带着一些朝圣的心情的。这是一门堪称「古老」的语言,这也是一门争议最多的语言,这更是一门不断涅槃的语言。「PHP 是最好的语言」这个流传已久的梗,或许正是对我国最有群众基础的编程语言描述里,最经典的注解。
就让我们一起回顾一下 PHP 的发展历程作为此系列文章的开篇。历史是最好的老师,他给每个未来提供启示。
谁创造了 PHP?
Rasmus Lerdorf 在 1994 年创造了 PHP,Andi Gutmans 和 Zeev Suraski 之后于 1997 年重写了 PHP 的解析器,之后他们在以色列成立了著名的 Zend 公司来维护 PHP 的开发。
PHP 是什么的缩写?
起先的意思直白的有点近乎粗鲁「Personal Home Page」,后来改成了「PHP: Hypertext Preprocessor」即便用今天的眼光看也是很酷炫的命名。
PHP 最著名的版本?
PHP 5 发布于 2004 年 7 月 13 日,距今正好第十一个年头。
下一个 PHP 版本?
PHP 7 计划于 2015 年 11 月 12 日发布。
PHP 的形象代言人?
一只蓝色的大象,因为「elePHPant」(黄色的那头是 Hadoop)。
谁在主导 PHP 的方向?
PHP Group 来维护其标准,Zend 作为商业公司提供参考实现。
HHVM 又是什么?
HipHop Virtual Machine (HHVM) 是 Facebook 对 PHP 的一次革命性衍进,HHVM 采用实时编译进程,使得 PHP 的执行效率大幅提升。Facebook 在 2013 年全面采用 HHVM 运行 PHP,间接拉升了 PHP 生态的逼格,激发了整个 PHPer 群体的活力。
PHP 的包依赖怎么做?
Composer
PHP 的单元测试怎么做?
PHPUnit
常见的 PHP 技术栈和应用场景?
LAMP(Linux + Apache + MySQL + PHP)长期占据着我国互联网应用的主流架构。即便在今天,这也是电商和社区类互联网公司的主要技术栈。尤其在电商领域,说 PHP 托起半个中国的购物车都不为过。
为什么 ASP 和 JSP 都没有 PHP 受众广?
当年 FTP 比起 VPS 简直是白菜价。但这也间接养成了 PHP 开发重功能轻工程的通病,加上部署的随意性,上规模后运维虐成狗。
就这个运维问题,作者 Rasmus Lerdorf 怎么看?
I'm not a real programmer. I throw together things until it works then I move on. The real programmers will say “Yeah it works but you're leaking memory everywhere. Perhaps we should fix that.” I’ll just restart Apache every 10 requests.
翻译过来就是:「重启应该就有好运气」。
那怎么破的,能教教吗?
上 Docker!
欢迎进入「PHP 应用 Docker 开发大礼包 - Powered by DaoCloud」,六篇由浅入深、精心设计的系列文章,带领 PHP 开发者领略 Docker 化应用开发和发布的全新体验。
- 如何制作一个定制的 PHP 基础 Docker 镜像(一)
- 如何开发一个 PHP 的 Docker 化应用(二)
- 如何开发一个 PHP + MySQL 的 Docker 化应用(三)
- 如何配置一个 Docker 化持续集成的 PHP 开发环境(四)
- 如何开发一个 PHP + NewRelic 的生产级 Docker 化应用(五)
- 如何开发一个 Laravel + MySQL 框架的 Docker 化应用(六)
https://www.oschina.net/question/2322629_244177
PHP 开发者的 Docker 之旅的更多相关文章
- 【转】开发者可以使用Docker做什么?
有些开发者可能还是不明白 Docker 对自己到底有多大的用处,因此翻译 Docker 个人用例 这篇文章中来介绍 Docker 在普通开发者开发过程中的用例. Docker 如今赢得了许多关注,很多 ...
- Docker学习总结(6)——通过 Docker 化一个博客网站来开启我们的 Docker 之旅
通过 Docker 化一个博客网站来开启我们的 Docker 之旅 这篇文章包含 Docker 的基本概念,以及如何通过创建一个定制的 Dockerfile 来 Docker 化Dockerize一个 ...
- 一、Docker之旅
刚刚接触到docker的同事可能会一头雾水,docker到底是一个什么东西,先看看官方的定义. Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔 ...
- OneSQL的docker之旅
百度盘下载地址: http://pan.baidu.com/s/1v9GWA OneSQL Docker使用方法: 1. 解压 tar zxvf OneSql-Docker-5.6.2 ...
- Docker(一)Linux开启你的Docker之旅
前言 Docker容器最早受到RHEL完善的支持是从最近的CentOS 7.0开始的,官方说明是只能运行于64位架构平台, 内核版本为2.6.32-431及以上(即 >= CentOS 6.5, ...
- 简单四步開始树莓派上的Docker之旅
大概这篇博文发表之后,应该算是我个人的第一篇翻译作品了,翻译的可能不是非常到位,望各位看官大刀砍过来. 原文链接:http://resin.io/blog/docker-on-raspberry-pi ...
- 面向开发者的Docker实践
show me the code and talk to me,做的出来更要说的明白 本文源码,请点击learnSpringboot 我是布尔bl,你的支持是我分享的动力! 一. 引入 有开发经验的都 ...
- Docker对普通开发者的用处(转)
有些开发者可能还是不明白 Docker 对自己到底有多大的用处,因此翻译 Docker 个人用例 这篇文章中来介绍 Docker 在普通开发者开发过程中的用例. Docker 如今赢得了许多关注,很多 ...
- 用浏览器快速开启Docker的体验之旅
互联网科技发展创造了很多奇迹,比如我今天要提到的 docker 技术就是其一.我很早就关注它(在2015年写过这方面的博客),那会儿还只是一个开源项目,现在已经是一个行业事实标准了,它推动了云原生的变 ...
随机推荐
- 从小白到区块链工程师:第一阶段:Go语言的控制台输入和输出(3)
六,Print系列的函数输出 1:Println 打印换行.Print控制台打印,lnline 一行,打印数据后自动换一行显示.下面显示在控制台打印出不同的类型. 打印输出结果后,会自动换一行.打印结 ...
- JVM之浮点数(float)表示
1. 浮点数的组成:符号位.指数位.尾数位. 1.1 符号位: 占1位,表示正负数: 1.2 指数位: 占8位: 1.3 尾数位: 占23位. 2. 浮点数的表示: 2.1 取值: sflag * ...
- Linux学习笔记 11
移除文件 #rm -i file 有信息确认的文件删除 #rm file1 file2 有信息确认的文件删除 #rm -rf file 强制删除file文件
- SpringBoot+Mybatis+MySql学习
介绍一下SpringBoot整合mybatis,数据库选用的是mysql. 首先创建数据库 CREATE DATABASE test; 建表以及插入初始数据(sql是从navicat中导出的) SET ...
- Err.number错误号和可捕获的 Microsoft access 数据库引擎和 DAO错误说明
错误码 信息2420 数字语法错误2421 日期语法错误2422 字符串语法错误2423 ‘.’.‘!’.或 ‘()’的使用无效2 ...
- z-index使用及一定要加backgroun
代码: <div> <span style="display:block;width:40px;height:20px;border:1px solid red;posit ...
- 为什么要DevOps?
Boss:「项目经常延期」「做东西太慢」 产品: 「老板的想法总变」 「事情太多,忙成狗」 「开发说这个实现不了」 开发: 「需求总变」 「UI 方案给的太晚」 「活儿太多」 测试: 「需求变了没提前 ...
- Python内置模块的几点笔记
1.shutil模块 import shutil shutil.make_archive('shutil_archive_test', 'zip', 'D:\pyworkspace\.idea') m ...
- 深入理解JVM(3)——垃圾收集策略详解
Java虚拟机的内存模型分为五部分:程序计数器.Java虚拟机栈.本地方法栈.堆.方法区. 程序计数器.Java虚拟机栈.本地方法栈都是线程私有的,也就是每个线程都拥有这三个区域,而且这三个区域会随着 ...
- python之item方法
__setitem__ __getitem__ __delitem__这三个函数 是通过字典形式来处理属性 字典形式使用中括号的方式获取值 class Foo: def __init__(sel ...