hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - PHP教程 - 正文 请牢记本站网址www.sosophp.cn

php 的生命周期【php教程】

2019-12-01PHP教程搜搜PHP网42°c
A+ A-

1、PHP的运转形式:

PHP两种运转形式是WEB形式、CLI形式。不管哪一种形式,PHP事情道理都是一样的,作为一种SAPI运转。

1、当我们在终端敲入php这个敕令的时刻,它运用的是CLI。

它就像一个web服务器一样来支撑php完成这个要求,要求完成后再从新把控制权交给终端。

2、当运用Apache或许别web服务器作为宿主时,当一个要求到来时,PHP会来支撑完成这个要求。平常有:

多历程(一般编译为apache的模块来处置惩罚PHP要求)

多线程形式

扼要的实行历程:

1. PHP是跟着Apache的启动而运转的;

2. PHP经由过程mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用顺序编程接口);
3. PHP总共有三个模块:内核、Zend引擎、以及扩大层;
4. PHP内核用来处置惩罚要求、文件流、错误处置惩罚等相干操纵;
5. Zend引擎(ZE)用以将源文件转换成机器语言,然后在假造机上运转它;
6. 扩大层是一组函数、类库和流,PHP运用它们来实行一些特定的操纵。比方,我们须要MySQL扩大来衔接MySQL数据库;
7. 当ZE实行顺序时可能会须要衔接多少扩大,这时候ZE将控制权交给扩大,等处置惩罚完特定使命后再返还;
8. 末了,ZE将顺序运转效果返回给PHP内核,它再将效果传送给SAPI层,终究输出到浏览器上。

2. 运转PHP的几个阶段:

SAPI运转PHP都经由下面几个阶段:
1、模块初始化阶段(Module init) :
即挪用每一个扩大源码中的的PHP_MINIT_FUNCTION中的要领初始化模块,举行一些模块所需变量的请求,内存分派等。
2、要求初始化阶段(Request init) :
即接受到客户端的要求后挪用每一个扩大的PHP_RINIT_FUNCTION中的要领,初始化PHP剧本的实行环境。
3、实行PHP剧本
4、要求终了(Request Shutdown) :
这时候刻挪用每一个扩大的PHP_RSHUTDOWN_FUNCTION要领清算要求现场,而且ZE最先接纳变量和内存。
5、封闭模块(Module shutdown) :
Web服务器退出或许敕令行剧本实行终了退出会挪用扩大源码中的PHP_MSHUTDOWN_FUNCTION 要领

3. 种种情况下的SAPI生命周期。

1. 单历程SAPI生命周期。(CGI)

CLI/CGI形式的PHP属于单历程的SAPI形式。这类的要求在处置惩罚一次要求后就封闭。也就是说每次要求都邑反复这几个环节: 最先 - 要求最先 - 要求封闭 - 终了 。能够看到扩大的初始化花费了许多资本。

2. 多历程SAPI生命周期。(MPM的perfork体式格局)

一般PHP是编译为apache的一个模块来处置惩罚PHP要求(mod_php)。Apache平常会采纳多历程形式, Apache启动后会fork出多个子历程(apache里能够指定最先fork出来的历程数)。每一个历程的内存空间自力,每一个子历程刚被fock出来都邑经由最先和终了环节。

3. 多线程的SAPI生命周期。(FastCGI或许MPM的work体式格局里的单个历程)

多线程形式和多历程中的某个历程相似,在这类形式下,只要一个服务器历程在运转着,但会同时运转许多线程,如许能够削减一些资本开支,向Module init和Module shutdown就只须要运转一遍就好了,一些全局变量也只须要初始化一次,由于线程独具的特质,使得各个要求之间轻易的同享一些数据成为可能。

更多PHP相干技术文章,请接见PHP教程栏目举行进修!

以上就是php 的生命周期的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
php 的生命周期【php教程】

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签: