PHP的几种运行模式

1.cli:命令行模式

php test.php

2.CGI(common gateway interface): 公共网关接口

   当一个服务web-service(nginx)分配过来请求的时候,通过匹配后缀是动态的php的请求。CGI就会去读取php.ini的基本配置信息,初始化环境,创建进程,返回数据,退出进程。每一次请求都是循环往复,所以有些繁琐,这是后面为什么会诞生fastcgi的原因。

3. fastcgi (fast cgi): cgi的改进版

   3.1当web服务器启动时载入fastcgi管理器。

   3.2.fastcgi自动初始化,创建fastcgi主进程和多个cgi解析器进程,等待来着web服务器的请求(只初始化一次,还有个好处,数据库可以持续化连接)。

   3.3当请求web服务器时,通过匹配后缀是动态的php请求,web服务器通过socket请求fastcgi进程管理器,fastcgi进程管理器,选择一个cgi解析器,web服务器将cgi环境变量和标准输入发送fastcgi子进程php-cgi.

 3.4fastcgi子进程处理完后将标准的输出和错误从同一个连接返回给web服务器,当fastcgi子进程结束后请求就结束了,fastcgi子进程接着等待处理来自fastcgi进程管理器的下一个连接,在CGI模式中,php-cgi.在此便退出了。

4. mod_php:

即Apache运行PHP的默认方式,将PHP作为web服务器的子进程控制,两者之间有从属关系,最明显的例子就是在CGI模式下,如果修改了php.ini的配置文件,不用重启web服务便可生效(每次都会加载php.ini的配置,这也是导致性能能地下的一个原因),而模块模式下需要重启web服务。以mod_php模式运行PHP,意味着PHP是作为Apache的一个模块来启动的,因此只有在Apache启动的时候会读取php.ini配置文件并加载扩展模块,在Apache运行期间是不会再去读取和加载扩展模块的

 

    原文作者:矿泉水的梦
    原文地址: https://blog.csdn.net/xiaomu_33/article/details/89182411
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞