Skip to content
Go back

PHP 运行机制和 LNMP 架构

最近了解了一下PHP基本运行原理和常用架构,这里整理出来方便回顾。

PHP的设计理念及特点

注:和Java Go进程模型对比

PHP的四层体系

PHP的核心架构如下图: php架构.jpg

PHP的执行流程&Opcode

php执行过程.png

拿到一段代码后,经过词法解析、语法解析等阶段后,源程序会被翻译成一个个指令(Opcode),然后ZEND虚拟机顺次执行这些指令完成操作。

常用LNMP架构

Nginx作为请求入口,对前后端流量进行分发,PHP文件通过fastcgi协议转发给PHP-FPM。

PHP-FPM:

先启动一个master进程,加载和解析PHP配置,具体请求分发到worker进程执行,worker进程是阻塞式的,完成一个请求才能接收下一个请求。 当请求并发较多时,所有worker进程都在running状态,就会出现504错误了。

常用LNMP架构如下图:

php-lnmp架构.jpg

参考内容:


Share this post on:

Previous Post
OpenResty 初探
Next Post
Nginx “Too many open files”错误解决办法