PHP缓存加速器原理

LAMP环境的PHP缓存加速器原理

在LAMP环境中,Apache服务是使用libphp5.so响应处理PHP程序请求的,整个流程如下:

1、Apache接收客户端的PHP程序请求并根据规则过滤。

2、Apache将PHP程序请求传递给PHP处理模块libphp5.so

3、PHP引擎定位磁盘上的PHP文件,并将其加载到内存中解析

4、PHP处理模块libphp5.so将PHP源代码编译成为opcode

5、PHP处理模块libphp5.so执行opcode,然后把opcode缓存起来

6、Apache接收客户端新的PHP程序请求,PHP引擎直接读取缓存执行opcode文件,并将结果返回。在这一次任务中,就无第4步的编译解析了,从而提升了PHP编译解析效率

LNMP环境PHP缓存加速器原理

在LNMP环境中,PHP引擎不再使用libphp5.so模块了,而是启动了独立的FCGI即php-fpm进程,由它监听来自nginx的PHP程序请求,并交给PHP引擎解析处理,整个执行流程大概如下:

1)Nginx接收客户端的PHP程序访问请求。

2)Nginx根据扩展名等过滤规则将PHP程序请求传递给解析PHP的FCGI进程(PHP-FPM)

3)PHP FPM进程调用PHP解析器读取站点磁盘上的PHP文件,并加载到内存中。

4)PHP解析器将PHP程序编译为opcode文件,然后把opcode缓存起来。

5)PHP FPM引擎执行opcode树,返回数据给Nginx,进而返回客户端。

6)Nginx 接收客户新的PHP程序请求,PHP FPM引擎就会直接读取缓存中的opcode执行,将结果返回,该过程中无需第4步操作,从而提升了PHP编译解析效率。

相关推荐