PHP三种运行方式mod_php5/cgi/fast-cgi

转载 2016年05月31日 21:16:27

1. PHP三种运行方式mod_php5/cgi/fast-cgi

1.1. a.通过HTTPServer内置的模块来实现,

例如Apache的mod_php5,类似的Apache内置的mod_perl可以对perl支持;

1.2. b.通过CGI来实现

这个就好比之前perl的CGI,该种方式的缺点是性能差,因为每次服务器遇到这些脚本都需要重新启动脚本解析器来执行脚本然后将结果返回给服务器;另一方面就是不太安全;该方面几乎很少使用了。

1.3. c.最新出现一种叫做FastCGI。

所谓FastCGI就是对CGI的改进。它一般采用C/S结构,一般脚本处理器会启动一个或者多个daemon进 程,每次HTTPServer遇到脚本的时候,直接交付给FastCGI的进程来执行,然后将得到的结果(通常为html)返回给浏览器。

该种方法的问题存在一个小问题是当遇到大流量的频繁请求的话,脚本处理器的daemon进程可能会超负荷从而变得很慢,甚至发生内存泄漏;

但是比较起Apache的内置模块的方式的优点是由于Server和脚本解析器完全分开各负其责,因此服务器不再臃肿,可以专心地进行静态文件响 应或者将动态脚本解析器的结果返回给用户客户端。所以比较起Apache的内置模块方式,有时候性能要提高很多。有人测试可能会达到 Apache+mod_php的5~10倍。

1.3.1. 三种常用模式:

Apache+mod_php5;

lightppd+spawn-fcgi;

nginx+PHP-FPM

1.3.2. 我们可以使用到生产环境中的:

1.3.3. 0) 如果不是server cluster的话:

可以使用以上任一种,不过有各种测试表明nginx+PHP-FPM性能优越,但是Apache+mod_php5很经典模块多,比如对.htaccess等的支持。

1.3.4. 如果构建server cluster的话:

1.3.5. 1) nginx作为反向代理服务器,后台多台Apache+mod_php5。

nginx处理静态文件,及对php并发请求对后台多台app server的负载均衡;

1.3.6. 2) nginx作为反向代理器,后台多台PHP-FPM

nginx处理静态文件及将php并发请求发送到后台php-fpm来解析;






1)CGI方式加载PHP环境
通常就是IIS里面配置解释器为php.exe,早期比较常见,目前使用较少。   特点是:稳定,但效率太低。  
2)ISAPI方式加载PHP环境
通常就是IIS里面配置解释器为php5isapi.dll,目前使用最多,应用最广。   特点是:多线程,效率较高,但不够稳定。  
3)FastCGI方式加载PHP环境
在IIS环境里并不常见,但其它系统环境应用还是有的,不过IIS7.0开始内置FastCGI了。  特点是:高效率,高稳定性,属于将来发展趋势。

IIS7 配置 PHP 5.x(cgi方式) | 转:橘子博客

1、确定iis7应用程序开发功能中的CGI功能开启,如图1 2、安装PHP Manager模块       IIS 7.5 新增了PHP 扩展模块,下载地址:http://phpmanager...
  • kuangshazi515
  • kuangshazi515
  • 2012年06月27日 13:19
  • 3289

php在apache中三种工作方式:CGI模式、FastCGI模式、Apache 模块DLL 的区别

一、 php在apache中一共有三种工作方式:CGI模式、FastCGI 、FastCGI是什么?  FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行 为是将CGI解释器进程保持在内...
  • u010187139
  • u010187139
  • 2015年07月11日 11:18
  • 2439

PHP运行模式cgi 、fast-cgi、cli 命令行、web模块模式

PHP运行模式有4钟: 1)cgi 通用网关接口(Common Gateway Interface)) 2) fast-cgi 常驻 (long-live) 型的 CGI 3) cli  命令行...
  • qingshuoyisheng123
  • qingshuoyisheng123
  • 2016年11月15日 10:16
  • 1365

php的运行原理、cgi对比fastcgi以及php-cgi和php-fpm之间的联系区别

最近项目中本地测试环境遇到了windows环境下的nginx使用file_get_contents/curl访问php文件导致的阻塞问题,一直在找解决的方案,这个问题研究了三天终于找到了解决方案,原本...
  • belen_xue
  • belen_xue
  • 2017年04月04日 15:40
  • 1590

开发基于Apache服务器上的CGI程序

在上一节中成功的搭建了Apache服务器,
  • u010105970
  • u010105970
  • 2014年11月19日 18:18
  • 3026

tomcat 和 apache跟CGI都有什么关系呢?

tomcat 和 apache跟CGI都有什么关系呢? IIS和古老的PWS都是win下运行的《web服务程序》对吧?这下边跑的是.asp对吧?这些不会跨平台对吧? 《web服务程序》是:apa...
  • linuxheik
  • linuxheik
  • 2016年07月09日 10:36
  • 1101

apache CGI模块应用

http://blog.chinaunix.net/uid-12020217-id-2963636.html 简介 相关模块 相关指令  mod_alias mod_cgi...
  • dsg333
  • dsg333
  • 2013年01月02日 22:32
  • 2265

Web服务器和CGI的关系

什么是WEB服务器(IIS、Nginx、Apache) WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 (1)应用层使用HTTP协议。 (2)H...
  • kobejayandy
  • kobejayandy
  • 2013年09月22日 18:48
  • 8627

Windows下配置apache运行cgi程序

配置Apache2.2.25在windows环境下运行cgi程序,利用C语言开发一个简单的后门程序。 1. Apache/conf/httpd.conf文件的配置(两处改动)            ...
  • key_point
  • key_point
  • 2016年08月23日 17:06
  • 1060

php CGI、Fastcgi、PHP-FPM的详细介绍与之间的关系

php CGI、Fastcgi、PHP-FPM的详细介绍与之间的关系
  • leyangjun
  • leyangjun
  • 2016年08月14日 11:30
  • 582
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP三种运行方式mod_php5/cgi/fast-cgi
举报原因:
原因补充:

(最多只允许输入30个字)