没有合适的资源?快使用搜索试试~ 我知道了~
(完整版)[好文]mod-php和mod-fastcgi和php-fpm的介绍-对比-和性能数据.doc
需积分: 5 0 下载量 88 浏览量
2022-10-23
23:50:35
上传
评论
收藏 311KB DOC 举报
温馨提示
试读
16页
(完整版)[好文]mod-php和mod-fastcgi和php-fpm的介绍-对比-和性能数据.doc
资源推荐
资源详情
资源评论
mod_php VS mod_fastcgi
目录
什么是 MOD_PHP 和 MOD_FASTCGI ..................................................1
工作原理......................................................................1
MOD_PHP......................................................................2
MOD_FASTCGI ..................................................................3
MOD_FACTCGI 的三种配置方式 ....................................................4
静态配置....................................................................5
动态配置....................................................................5
远程方式....................................................................6
PHP-FPM.......................................................................6
性能测试......................................................................8
名称解释....................................................................8
测试内容....................................................................8
测试结果....................................................................8
FASTCGI 配置项对性能的影响。 .................................................11
分析&结论....................................................................13
附录.........................................................................14
APACHE+MOD_FASTCGI+PHP 搭建 ...............................................14
什么是 mod_php 和 mod_fastcgi
在 lamp 体系中,对于 apache 端 php 的配置,我们最常用的就是 mod_php,
它把 PHP 做为 APACHE 一个内置模块。让 apache http 服务器本身能够支持 PHP
语言,不需要每一个请求就启动 PHP 解释器来解释 PHP。
和把 webserver 与 php 绑定起来的方式不同,fastcgi 是 HTTP 服务器与你的
或其它机器上的程序进行“交谈”的一种工具,相当于一个程序接口。它可以接
受来自 web 服务器的请求,解释输入信息,将处理后的结果返回给服务器
(apache,lighty 等)。mod_fastcgi 就是在 apache 下支持 fastcgi 协议的模块。
工作原理
在介绍这两种模式的工作原理前,我们先了解一下 php 的架构
图 1 php 架构图
上面是 php 的架构图,从图上可以看到, SAPI 提供了一个和外部通信的接
口,使得 PHP 可以和其他应用进行交互数据。php 默认提供了很多种 SAPI,常见
的给 apache 的 mod_php5,CGI,给 IIS 的 ISAPI,还有 Shell 的 CLI。对于一个
基于 apache 的 php 应用,其运行流程可以简单归结如下
apache -> httpd -> mod_phpfastcgi -> sapi -> php
我们下面提到的两种工作方式就分别用到了 mod_php5 和 cgi 的 sapi。
mod_php
mod_php 是在 lamp 体系中最常使用的工作方式,在这种模式下,php 被编译
为 apache 的一个内置模块,在启动时加载。当有一个 php 请求过来时,直接在
httpd 进程里完成 php 的解释运行,将结果返回。
在 php 的 sapi 中,有这样一个函数: sapi_cgibin_ub_write, 这个函数告诉
了 Zend,如何输出数据。查看 mod_php 的 sapi 源码,我们会发现,这个函数直
接调用了 apache 的 ap_rwrite 函数。所以,用 mod_php,我们可以把 php 和
apache 看做一个模块,两者绑定在一起。其工作原理如下图所示
图 2 mod_php 工作原理
mod_fastcgi
在说明 fastcgi 之前,先了解一下普通 cgi 的工作流程:
web server 收到用户请求,并把请求提交给 cgi 程序,cgi 程序根据请求提
交的参数作应处理,然后输出标准的 html 语句返回给 web server,web server
再返回给客户端,这就是普通 cgi 的工作原理。
fastcgi 是基于 cgi 架构的扩展,他的核心思想就是在 web server 和具体
cgi 程序之间建立一个智能的可持续的中间层,统管 cgi 程序的运行,这样 web
server 只需要将请求提交给这个层,这个层再派生出几个可复用的 cgi 程序实
例,然后再把请求分发给这些实例,这些实例是可控的,可持续,可复用的,
因此一方面避免了进程反复 fork,另一方面又可以通过中间层的控制和探测机
制来监视这些实例的运行情况,根据不同的状况 fork 或者回收实例,达到灵活
性和稳定性兼得的目的。modFastCGI 的主要优点是把动态语言和 web server 分
离开来。这种技术允许把 web server 和动态语言运行在不同的主机上,以大规
模扩展和改进安全性而不损失生产效率。
基于 mod_fastcgi 方式的 php 应用,其典型工作流程如下
剩余15页未读,继续阅读
资源评论
智慧安全方案
- 粉丝: 3596
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功