php internal(php体系结构和原理)

一.前言-后端如何处理一条index.php动态请求。

很多公司用lnmp环境作为基础软件环境,用php能做快速开发。下面简单描述下,后端是如何处理一个从浏览器发起的 http://www.abcdxxx.com/index.php的请求的。

browser->nginx 通过http协议,nginx 接收浏览器发的动态请求。

browser->nginx->phpcgi,nginx把接收到的请求,通过cgi协议,发送给php-fpm进程做处理。

php-fpm内部处理过程,先把php程序,编译成opcode 字节码,然后把opcode字节码 放到zend 引擎(虚拟机) 上运行,和java类似。

zend 引擎(虚拟机)直接与操作系统,发起系统调用等处理请求。

如果涉及到需要连mysql,那就发起请求,通过mysql client协议,将请求发给mysql,去操作mysql的数据。

二.参考资料

https://github.com/reeze/tipi/blob/master/web/releases/TIPI_2014-04-29_V0.8.3.chm?raw=true

http://yanbin.org/download/php-internals.pdf

http://derickrethans.nl/talks/internals.pdf

http://nginx.org/en/docs/http/request_processing.html

http://cdn.nginx.com/wp-content/uploads/2015/04/150427_NGINX-subway_RGB.png

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-05 11:36:18

php internal(php体系结构和原理)的相关文章

我的”三个一切“

?? 想写这篇文章很久了,一直没有时间动笔.时间一刻也不曾停留,回想自己,踏上南国的这片热土近十年了,竟然弹指一挥间.在这个没有文化底蕴而又多元文化的移民城市,深深感受到了那句至理名言,时间就是生命,效率就是金钱.同样,改革是深圳之魂,创新文化无处不在,也印证了那亘古不变的道理,唯一不变的就是变化.由特区到自由贸易区,30余年的时间走完了西方近百年的历程,可谓实时日新月异,与时俱进.想想自己自己在数据库圈子里也摸爬打滚了好些年,认识了些大牛,也喜欢关公面前耍大刀,搬门弄斧,只是希望自己的只言片语

计算机核心知识

核心课程 计算机体系结构 操作系统原理 计算机网络 算法与数据结构 编译原理 “核心课程”可能不限于以上,另外个人建议加一门“程序语言原理”(和编译原理不同) 做Web开发而不懂网络原理,有时会犯很低级的错误: 深入理解数据库,离不开操作系统.编译原理.数据结构等

【深入理解Linux内核架构】第3章:内存管理

3.1 概述 内存管理涵盖了许多领域: 内存中物理内存页的管理: 分配大块内存的伙伴系统: 分配小块内存的slab.slub.slob分配器: 分配非连续内存块的vmalloc机制: 进程的地址空间. Linux内核一般将虚拟地址空间划分为两部分:底部较大的部分用于用户进程,顶部则用于内核.虽然(在两个用户进程之间)上下文切换期间会改变下半部分,但是虚拟地址空间的内核部分中总是不变[这其实很好理解,内核是系统管理员,不能说因为每换一批游客,景区管理员都得跟着换一批?!].在IA-32系统上,虚拟

老男孩教育运维班26期脱产班9月即将开班,伙伴们抓紧报名!

老男孩教育中国linux运维领域教育第一品牌,不仅教学质量一流,就业薪水更是一流! linux运维班平均毕业工资10K,高级架构师毕业平均薪资16K. 本课表为201508制定,适合26期脱产班,最艰苦的周期4-5个月,有胆量挑战么? 什么?还没有掌握linux高级运维实战技术?那你真OUT了! 什么?工资还没过10K,那你更OUT了,北京平均工资最低也10K以上了! 屌丝们最后的福利! 身价千万的老板不足为奇! 身价千万的明星也不足为奇! 身价千万的运维屌丝你见过么?什么-没见过!!! 他如今

课程表安排

第一部分:linux网站运维必会基础技术知识体系 基础不牢,地动山摇 1.如何成为一个优秀的linux运维架构师人员 1)什么是linux运维? 2)linux运维岗位都做啥? 3)如何学好linux运维? 4)linux专业运维人员的习惯和思想 5)运维人员职场必备的工作沟通技巧 2.如何高标准的掌握linux运维实战技术 1)树立合理的职业目标和职业规划 2)掌握科学的学习运维技术的方法 3)掌握上课听课学习的要领 4)学习老师优秀的运维习惯和思路 5)抓重点.抓精髓 3.计算机硬件基础核心

Oracle学习路线

这是本人收藏的一个大师写的,用来提示自己oracle学习路线 1.sql.pl/sql(网上有很多的视频,可以做一个简单的入手,然后看几本书,多做实验)    作为oracle的基本功,需要大家对sql和plsql非常的熟悉.特别是sql里面的多表连接.子查询.各种新版本的函数,以及plsql里面的所有 语法.建议大家拿出足够的时间来研究这两块.不要认为这是开发人员的工作,他也是DBA的重要工作,而且对DBA的要求更高,你不但能看懂,还要能够找出 问题.学些这方面知识的要点就是:多练.多思考.2

内存管理(上)

一.概述 内存管理涵盖领域: 内存中的物理内存页管理: 分配大块内存的伙伴系统: 分配较小块内存的slab.slub和slob分配器: 分配连续内存块的vmalloc机制: 进程的地址空间. Linux内核一般将处理器的虚拟地址分为两个部分,以IA-32为例,地址空间在用户进程和内核之间的划分比例为3:1.4GB的虚拟地址空间,3GB用于用户空间,1GB用于内核. IA-32系统中,假设物理内存4GB,则所有物理内存无法直接映射到内核态(内核的地址空间小于1GB),对于用户空间的内存,无法进行直

大数据学习方法,学习大数据需要的基础和路线

大数据基础学习 大数据基础入门 为什么要学习大数据 1.目的:要份很好工作(钱) 2.对比:Java开发和大数据开发 什么是大数据? 举例: 1.商品推荐:问题: (1)大量的订单如何存储? (2)大量的订单如何计算? 2.天气预报:问题: (1)大量的天气数据如何存储? (2)大量的天气数据如何计算? 如果你想要学好大数据最好加入一个好的学习环境,可以来这个Q群251956502 这样大家学习的话就比较方便,还能够共同交流和分享资料 什么是大数据,本质? (1)数据的存储:分布式文件系统(分布

大数据基础学习

什么是大数据? 举例: 1.商品推荐:问题: (1)大量的订单如何存储? (2)大量的订单如何计算? 2.天气预报:问题: (1)大量的天气数据如何存储? (2)大量的天气数据如何计算? 如果你想要学好大数据最好加入一个好的学习环境,可以来这个Q群251956502 这样大家学习的话就比较方便,还能够共同交流和分享资料 什么是大数据,本质? (1)数据的存储:分布式文件系统(分布式存储) (2)数据的计算:分布式计算 Java和大数据是什么关系? 1.Hadoop:基于Java语言开发 2.Sp