PHP在web方式中如何改了文件就立即生效的,重要的几个概念:sapi: 可以简单的理解为php引擎对外的一个统一接口,使得php可以和外部程序进行交互

php的生命周期中关键四个调用: MINT -> RINT -> RSHUTDOWN -> MSHUTDOWN

fpm: fastcgi进程管理器

fpm方式的流程就是:fpm通过sapi接口与php进程交互

1.fpm启动会调用各扩展的MINT方法,进行一些数据初始化(长驻内存)

2.每个请求过来,先会执行RINT对单个请求行一个初始化

3.执行php脚本(在没有缓存opcode的情况下,这里的php脚本是动态执行的,所以更新php脚本后,会执行新的php脚本,详情不在这里叙述)

4.执行RSHUTDOWN方法

5.如果你要停止fpm了,才会执行MSHUTDOWN

fpm对每个请求的处理都是一直在在重复执行 2~4步,在第三步中,php的脚本是动态执行的,由于每次都要执行一次php脚本,而每次php脚本都要有一个把php文件翻译成opcode的流程(比较耗时), 于是就产生的opcache工具。

opcache直接把php翻译后的opcode代码树保存到共享内存中,以便直接使用,从而减少每次都把php翻译成opcode的开销。

opcache的问题: 按照他的描述,修改了php文件,并不能立即被更新。

opcache的解决方案: 有一个配置来设置隔多长时间检测文件是否更新了,从而有机会在第二步重新来reload相关的文件。

当然,直接reload fpm,从而达到php热更新的效果(opcache扩展可以在第四步把相关的opcode cache给清空)。

图示

版权属于:LukaChen

欢迎转载,须注明来源及本声明

php 脚本 fpm缓存,PHP生命周期及fpm(FastCGI进程管理器)的运作方式相关推荐

  1. FastCGI 进程管理器(FPM)

    FastCGI 进程管理器 FPM(FastCGI 进程管理器)是 PHP FastCGI 的主要实现,包含大部分对高负载网站有用的功能. 它的功能包括: 支持平滑停止/启动的高级进程管理功能: 进程 ...

  2. FastCGI 进程管理器(FPM)配置项目列表

    FPM 使用类似 php.ini 语法的 php-fpm.conf 和进程池配置文件. php-fpm.conf 全局配置段 pid string PID 文件的位置.默认为空. error_log  ...

  3. 配置FPM(FastCGI 进程管理器)

    配置FPM FPM 使用类似 php.ini 语法的 php-fpm.conf 和进程池配置文件. php-fpm.conf 全局配置段 pid string PID 文件的位置.默认为空. erro ...

  4. 开源博客QBlog开发者视频教程:生命周期Page_Load介绍及简洁传递参数的重构方式(四)...

    2019独角兽企业重金招聘Python工程师标准>>> 前言: 两三天没出视频了,主要是接下来的视频不好录制[给自己找个借口,其实顺路看了两天动漫], 当然中间也在一直想怎么录,怎么 ...

  5. bug生命周期你们公司是如何管理bug的

    你们公司是如何管理bug的? 考查点:缺陷的生命周期 常见的流程就不多说了,CSDN上有很多, 今天说一些不一样的点: 正常流程:打开–接受–已解决-关闭 其它状态:拒绝.重新打开.遗留 1.线上的b ...

  6. 使用脚本在Linux服务器上自动安装Kubernetes的包管理器Helm

    Helm之于Kubernetes好比yum之于Red Hat Enterprise Linux,或者apt-get之于Ubuntu. Helm是由helm CLI和Tiller组成,是典型的Clien ...

  7. MIDle生命周期详解,以及工作原理

    当MIDlet被应用程序管理器成功地初始化之后,就开始展开了它的生命周期.MIDlet的生命周期完全由应用程序管理器控制,也就是说,当MIDlet要从一个状态变成另外一个状态时,应用程序管理器会调用对 ...

  8. 游戏脚本和MonoBehaviour生命周期

    一.游戏脚本 1.双击Project视图中, Script目录下的GameManager脚本 2.使用MonoDevelop编辑器打开 3.所有创建的用于添加到游戏对象上的脚本都必须继承自MonoBe ...

  9. 【Unity3D 教程系列第 10 篇】Unity 脚本中的生命周期流程图

    这是[Unity3D 教程系列第 10 篇],如果觉得有用的话,欢迎关注专栏. 文章目录 一:生命周期流程图 二:常用的生命周期函数 三:脚本初始化和销毁 四:脚本的动态添加与静态添加 五:Awake ...

最新文章

  1. 社交网络图挖掘5--图的邻居性质
  2. 《研磨设计模式》chap19 备忘录模式
  3. 原生ajax如何执行,原生ajax调用数据实例讲解
  4. 数字营销行业大数据平台云原生升级实战
  5. 荣耀青春30青春版能升鸿蒙,或是新一代拍照神器 荣耀30青春版今日发布
  6. 部分基于layui的时间函数
  7. av_seek_frame() 定位为什么不准呢?
  8. javascript学习----window对象的学习与总结
  9. scp 不输入密码登录
  10. UVA10317- Equating Equations(回溯+剪枝)
  11. 猿编程python代码_猿编程怎么练习编程 让你提前熟悉代码
  12. 铁三角- 倒数348天
  13. PS使用:利用PS去除图片中的多余文字
  14. python2.X 画一个正方体
  15. 感谢上天,我被失联2年后,终于活着从东南亚菠菜公司的技术“魔窟”逃出来了......
  16. 桌面最前 desk_使用T3Desk在3D桌面环境中管理应用程序
  17. 楼市回暖有赖于经济复苏
  18. 计算机一接上网线重新启动,一插上网线电脑会自动重启解决方法
  19. matlab解决最短路径问题
  20. 手把手教你使用R语言做LASSO 回归

热门文章

  1. workunit 的指的工作单元是什么_三支一扶指的是什么?主要工作内容有哪些?
  2. 聚类分析和主成分分析
  3. 科研文献|粪便污染可以解释人为影响环境中抗生素耐药基因丰度
  4. mSystems:南土所梁玉婷组-土壤pH过滤稻田土壤耐铝微生物的关联模式
  5. MPB:浙大王佳堃组-​幼龄反刍动物粪便DNA提取及注意事项
  6. 生物工程学报-微生物组测序与分析专刊-邀请函
  7. 微生物预测年龄,皮肤比肠道更准确
  8. 走进科学-小菌株大作为—枯草芽孢杆菌替代畜牧业抗生素添加
  9. 综述:植物相关微生物群在传统草药中的作用
  10. R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(配置显示均值、标准偏差)实战