php运行模型cgi fastcgi
来源:互联网 发布:amazfit华米手表 知乎 编辑:程序博客网 时间:2024/04/27 22:04
1运行模式理解
apache
php在apache中两种工作方式的区别(CGI模式、Apache 模块DLL)
这两种工作方式的区别:在CGI模式下,如果客户机请求一个php文件,Web服务器就调用php.exe去解释这个文件,然后再把解释的结果以网页的形式返回给客户机;而在模块化(DLL)中,PHP是与Web服务器一起启动并运行的。
所以从某种角度上来说,以apache模块方式安装的 PHP4有着比CGI模式更好的安全性以及更好的执行效率和速度。
CGI是比较原始的方式,Apache默认是以第二种方式运行PHP的。 CGI工作原理:每当客户请求CGI的时候,WEB服务器就请求操作系统生成一个新的CGI解释器进程(如php-cgi.exe),CGI 的一个进程则处理完一个请求后退出,下一个请求来时再创建新进程。当然,这样在访问量很少没有并发的情况也行。可是当访问量增大,并发存在,这种方式就不 适合了。于是就有了fastcgi。FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式)
fastcgi的方式是,web服务器收到一个请求时,他不会重新fork一个进程(因为这个进程在web服务器启动时就开启了,而且不会退出),web服务器直接把内容传递给这个进程(进程间通信,但fastcgi使用了别的方式,tcp方式通信),这个进程收到请求后进行处理,把结果返回给web服务器,最后自己接着等待下一个请求的到来,而不是退出。
**fastcgi跟cgi的区别是:
在web服务器方面 在对数据进行处理的进程方面
cgi fork一个新的进程进行处理 读取参数,处理数据,然后就结束生命期
fastcgi 用tcp方式跟远程机子上的进程或本地进程建立连接 要开启tcp端口,进入循环,等待数据的到来,处理数据**
nginx
Nginx默认不支持CGI模式,它是以FastCGI方式运行的。所以使用Nginx+PHP就是直接配置为FastCGI模式。
FastCGI的工作原理是:
(1)、Web Server 启动时载入FastCGI进程管理器【PHP的FastCGI进程管理器是PHP-FPM(php-FastCGI Process Manager)】(IIS ISAPI或Apache Module);
(2)、FastCGI进程管理器自身初始化,启动多个CGI解释器进程 (在任务管理器中可见多个php-cgi.exe)并等待来自Web Server的连接。
(3)、当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi.exe。
(4)、FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在 WebServer中)的下一个连接。 在正常的CGI模式中,php-cgi.exe在此便退出了。
在上述情况中,你可以想象 CGI通常有多慢。每一个Web请求PHP都必须重新解析php.ini、重新载入全部dll扩展并重初始化全部数据结构。使用FastCGI,所有这些 都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistent database connection)可以工作。
- php运行模型cgi fastcgi
- cgi && fastcgi && php-fpm
- CGI/FastCgi/PHP-FPM
- php-运行模式-ISAPI,fastcgi,CGI,cli,apache
- apache php的几种运行方式(cgi,fastcgi...)
- php的几种运行模式CLI、CGI、FastCGI、mod_php
- php cgi fastcgi php-fpm
- PHP CGI、FastCGI、PHP-fpm
- CGI,FastCGI,PHP-CGI与PHP-FPM
- 什么是CGI、FastCGI、PHP-CGI、PHP…
- CGI,FastCGI,PHP-CGI与PHP-FPM
- CGI、FastCGI、php-cgi、php-fpm
- 关于cgi、FastCGI、php-fpm、php-cgi
- 什么是CGI、FastCGI、php-cgi、php-fpm?
- 什么是CGI、FastCGI、php-cgi、php-fpm?
- 关于cgi、FastCGI、php-fpm、php-cgi
- CGI,FastCGI,PHP-CGI与PHP-FPM
- 谈谈 CGI、FastCGI、PHP-CGI、PHP-fpm
- centos 7 hive中中文显示乱码
- CoordinatorLayout
- Math.floor
- CPU如何操作内存
- 对AFN的二次封装
- php运行模型cgi fastcgi
- 全球https时代已经到来
- 51Nod - 1024 对数+暴力
- 寻找链表的中间节点
- 主板芯片组与内存映射
- SegmentFault 技术周刊 Vol.16 - 浅入浅出 JavaScript 函数式编程
- Android Listview item向左滑动 显示菜单(仿QQ滑动)
- 使用combobox进行模糊查询
- activity 获取 rootView 设置 backGroundColor