zoukankan      html  css  js  c++  java
  • php 运行模式

    1.php最常见的五种运行模式。

            CGI 通用网关接口

            FastCGI 常驻内存的CGI

            CLI 命令行

            Web模块  Apache等Web服务器 模块的形式加载php进程

             ISAPI 已经不用了

    2.CGI Common Gataway Inteface 通用网关接口 

                  网页请求和执行程序的连接桥梁,网页指令传递给执行程序php,再把执行结果返回网页

                   每一个请求都会经历。创建CGI子进程-》处理请求-〉返回结果-》关闭进程的模式 Fork-and-Excute模式

                   这样大量的请求会创建大量的子进程,占用大量的系统内存 cpu时间等,子进程反复加载是性能的瓶颈。

       php在cgi模式下 每一个请求都要载入ini文件,扩展,初始化数据结构等

    3.fastCGI CGI的升级版本,常驻内存的CGI模型,只激活一次,然后一直执行,不必每次Fork一次,fastCGI是可伸缩的http-server和脚本程序的通信接口,apache nginx等都支持fastCGI

         web-server启动时载入fastCGI进程管理,php-FPM-》进程管理器初始化 启动多个CGI等待连接-〉进程管理器接到请求选择一个CGI连接并处理请求-》处理完成后继续等待下一个连接

                fastcgi是以独立的进程池运行来cgi,单独一个进程死掉,系统可以很轻易的丢弃,然后重新分 配新的进程来运行逻辑

                Fastcgi支持分布式运算. fastcgi和宿主的server完全独立, fastcgi怎么down也不会把server搞垮.

                fastcgi把动态逻辑的处理从server中分离出来, 大负荷的IO处理还是留给宿主server, 这样宿主server可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分, 大量的图片等静态 

    4.CLI模式

        php的命令行模式, 使用多进程,守护进程负责任务分发,子进程负责处理数据,子进程退出守护进程还有机会重建流程

    5.模块模式

        apache可以以模块的形式动态加载php,作为web-server的一个模块,可以通过发送信号HUP或者AP_SIG_GRACEFUL给服务器,一旦接受到该信号,Apache将重新装载模块,而不需要重新启动服务器

    6.ISAPI模式 微软提供的一套API接口。一个ISAPI的DLL,可以在被用户请求激活后长驻内存,等待用户的另一个请求,还可以在一个DLL里设置多个用户请求处理函数,此外,ISAPI的DLL应用程序和WWW服务器处于同一个进程中,效率要显著高于CGI。(由于微软的排他性,只能运行于windows环境) 

  • 相关阅读:
    Centos启动Cassandra交互模式失败:No appropriate python interpreter found
    删除Kafka的topic
    《面向中国资本市场应用的分布式总账白皮书》笔记
    搭建Kafka集群(3-broker)
    【转】矩阵求导计算规则
    二次型求导
    解决: org.iq80.leveldb.DBException: IO error: C:data rie00945.sst: Could not create random access file.
    SSH遇见的问题
    解决:Redis:java.util.NoSuchElementException: Unable to validate object at
    【转】mysql查询结果输出到文件
  • 原文地址:https://www.cnblogs.com/hellohell/p/9081916.html
Copyright © 2011-2022 走看看