安装php又面临到了模式的选择,以前都是选择mod_php模式,因为这样安装比较方便哈,今天突然关心起FastCGI这种模式,败毒了一把,找到了一些关于mod_php和Fastcgi的选择与对比这方面的讨论,现在发出来留一个记号,以便进一步研究:

第一篇:php在apache中安装模式的区别:fastcgi和mod_php

说到fastCgi就不得不说Cgi。
     CGI英文全称是 Common Gateway Interface,通常翻译为共同网关接口,是HTTP服务器与机器上的其他程序进行通信的一个接口。这个“其他程序”可以使用任何计算机语言来编写,它通过CGI这个接口从HTTP服务器取得输入,然后把运行的结果又通过CGI这个接口交给HTTP服务器,而HTTP服务器把这个结果送给浏览器。

CGI的出现让WEB从静态变为为动态,随着Web的越来越普及,很多的网站的都需要有动态的页面,以便与浏览者互交。CGI方式的缺点也越来越突出。因为HTTP要生成一个动态页面,系统就必须启动一个新的进程以运行CGI程序,不断地fork是一项很消耗时间和资源的工作。这就出现了FastCGI。

百度百科关于FastCGI


 2. FastCGI 可在任何平台上使用,Netscape Enterprise 及 IIS 都有 FastCGI 的模块可供使用,阿帕契 (Apache,以及利用 Apache 衍生出做的服务器) 上也有 mod_fastcgi 可用。
 3. FastCGI 支持 C/C++,Ruby, Perl,Tcl,Java,Python 等程序语言。
 4. FastCGI 的应用程序亦兼容于 CGI。即 FastCGI 的应用程序也可以当成 CGI 来执行。
 5. 现有的 CGI 程序要改写成 FastCGI 非常简单,最少可能只需要多加入三行程序代码。
 6. FastCGI 的侦错方式与 CGI 大同小异,只要带入程序所需的环境变量及参数,即可在命令列模式执行或侦错。
 7. FastCGI 应用程序的写作方式与 CGI 类似,除了几项原则要特别注意外,FastCGI 的写作方式跟 CGI 几乎一样,与学习 Web Server API 比较起来, FastCGI 简单多了。
 8. FastCGI 支授分布式运算 (distributed computing),即 FastCGI 程序可以在网站服务器以外的主机上执行并且接受来自其它网站服务器来的请求。

mod_php就是把PHP做为APACHE一个内置模块。让apache http服务器本身能够支持PHP语言,不需要每一个请求就启动PHP解释器来解释PHP。

第二篇:mod_php or fastcgi性能比较与选择

用php肯定少了不这个问题的选择,cgi自然就不必说了,但是mod_php和fastcgi的争论确还是比较多的。
找了一些资料,晾在这,可供参考。
首先,性能应该是大家最关心的问题了,除了mod_php和fastcgi 的 benchmark,还有一些服务器差别的测试,如apache vs lighthttpd

1 mod_php, LightTPD, FastCGI - What’s fastest?
     这个bechmark的结果是 Apache(prefork)+Fastcgi+php的性能是最好的。超过了apache+mod_php,甚至也超过了lightty+fastcgi+php。当然,这个结果得出值相差都很小。另外,以上说的几个结果都使用了APC加速,使用APC后性能提高1倍以上。

2 php4-mod-vs-cgi
   这个bechmark是在php4的环境下完成的。其summary.txt的内容如下。


------------------------

PHP4 module, very simple script (phpinfo.php): requests/s
plain 130.04
+turckcache 129.42
+turckcache+zend-optimizer 125.50

PHP4 module, very complex script (insurance application): requests/s
plain 1.84
+turckcache 6.23
+turckcache+zend-optimizer 5.58
+optimizer 1.58

PHP4 CGI, very simple script (phpinfo.php): requests/s
plain 22.69
+turckcache n/a*
+turckcache+zend-optimizer n/a*
+optimizer 21.23

PHP4 CGI, very complex script (insurance application): requests/s
plain 2.00
+turckcache n/a*
+turckcache+zend-optimizer n/a*
+optimizer 1.72

* = turkcache doesn't support caching of the PHP scripts in CGI mode

上面的结果我觉得需要关注的是无cache的情况,因为使用mod_php或fastcgi主要还是用来生成动态页面。前面的cache有更好的工具来实现,如squid。所以,这个结果也是fastcgi胜出,相差也不大。

3 http://buytaert.net/drupal-performance?page=1
   这个文章的结果和上面两个刚好相反。使用fastcgi代替mod_php后,”When switching from

to

we observe a 63% slowdown for anonymous visitors, and a 18% slowdown for authenticated visitors.”以下是图表

另外,benchmark中也做了和lightty的比较,如下图:

这个文章的结论是Apache+mod_php性能好于Apache+fastcgi。另外,Apache+mod_php略好于lightty+fastcgi。

4 最后看看 fastcgi官方自己怎么说的吧
    Of course, the answer is that it depends upon the application. A more complete answer is that FastCGI often wins by a significant margin, and seldom loses by very much.

5 结论是,还是根据自己的应用测一下吧….

最后,个人观点
如果mod_php和fastcgi的性能相差不是很大的话,还是倾向于fastcgi的,这种方式毕竟更灵活、安全和简单。
1 使用fastcgi,你的web server 可以比较简单的切换,可以测试不同的服务器,Apache,lightty,ngix 等等,不需要有代码的修改
2 如果想换脚本的实现,如不用php,而是改成perl,python之类的,web服务器也不需要任何的改动
3 web server和fastcgi可以用不同的帐号运行,带来了一定的安全隔离
4 只在Apache中编个mod_fastcgi可以说是简单多了,把mod_php编进apache时,出问题时很难定位是php的问题还是apache的问题,我就见过这样的core,函数调用几十层,一点头绪都没有

php安装模式mod_php和Fastcgi的选择与对比相关推荐

  1. 安装虚拟机报错,尝试选择采用nomodeset模式

    安装虚拟机报错,尝试选择采用nomodeset模式 第一步: Ubuntu选择安装界面,在e进入编辑界面. 找到quiet splash - 修改成: nomodeset quiet splash&q ...

  2. linux安装选择了整块硬盘,Linux系统安装模式下硬盘分区的选择方法

    实际上,在 Linux 安装的时候,已经提供了相当多的预设模式让您选择分割的方式了, 不过,无论如何,分割的行为都不是很能符合自己主机的样子!因为毕竟每个人的『想法』都不太一样! 因此,强烈建议使用『 ...

  3. 2021年大数据Hive(二):Hive的三种安装模式和MySQL搭配使用

    全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的三种安装模式和MySQL搭配使用 一.Hive的安装方 ...

  4. Hadoop三种安装模式

    2019独角兽企业重金招聘Python工程师标准>>> Hadoop三种安装模式:单机模式,伪分布式,真正分布式 一 单机模式standalone 单机模式是Hadoop的默认模式. ...

  5. wordpress支持MySQL5.5_CentOS 5.5安装Nginx、PHP(FastCGI)、MySQL --搭建LNMP环境安装Wordpress...

    一.总体介绍 系统环境  CentOS release 5.5 (Final)   ,kernel  2.6.18-194.el5 安装 Nginx . PHP(FastCGI)   . MySQL  ...

  6. Windows Server 2019的安装模式

    Windows Server 2019的安装模式 Windows Server 2019有多种安装模式,分别适用不同的环境,用户可以根据实际需要选择合适的安装方式,从而提高工作效率.除常规的使用 DV ...

  7. 利用DoraOS克隆安装模式改造瘦终端.

    前几天在网上看到,说朵拉云的瘦终端改造挺好的,这几天也没什么事,想起领导前几天说的测试桌面云终端,说干就干,找到软件下载地址了,下面还附带教程,不错挺简单的教程,给大家分享一下. DoraOS下载地址 ...

  8. 网络监控软件安装模式对比

    一.外网监控与内网监控 企业网络管理涉及到两个部分.一部分是监视上Internet的行为和内容,也就是大家所谓的上网监控或外网监控:另一部分是如果这个电脑不上Internet但又在内部局域网上(比如打 ...

  9. Atitit 图像处理类库安装与安装模式的前世今生与未来大趋势attilax总结.docx

    Atitit 图像处理类库安装与安装模式的前世今生与未来大趋势attilax总结.docx 1. 安装的原理,主要是解压,复制,设置三大步1 2. 目前我们常见的三大种安装模式,二进制模式与源码安装模 ...

最新文章

  1. python多大储存空间不足怎么办_Python存储空间不足
  2. 【廖雪峰python入门笔记】list删除元素_pop()
  3. opencv cv::BorderTypes 像素外推方法(Pixel extrapolation method)
  4. Linux线程——线程安全问题
  5. 百度Echarts折线图tooltip里数据添加单位
  6. vue路由添加.html,怎么使用VueRouter的addRoutes方法实现动态添加用户的权限路由
  7. java打jar包的方式,jar命令,maven
  8. 95-30-018-Channel-AbstractNioByteChannel
  9. 坚果云忽略同步文件的设置
  10. APISpace 尾号限行API接口 免费好用
  11. Oracle 对 JDK收费和.NET Core 给我们的机遇
  12. 安卓开发(简单打开前置摄像头并显示)
  13. 量子力学奇妙之旅-算符和电子自旋
  14. 芝士粉和芝士的区别_它是芝士吗?
  15. vba 添加outlook 签名_调用Outlook发送邮件-附带签名
  16. 基于Tomcat的MQ学习月记
  17. video-play使用,vue2
  18. 揭秘你所看不见的技术原理 - 游戏世界服
  19. WorldFirst公布本地化品牌名称,跨境收款万里汇!
  20. thirteen——sed

热门文章

  1. debian php mysql 包_Linux+Varnish+Apache+MySQL+PHP一键包For Ubuntu/Debian
  2. 使用OpenCV和Python生成视频条形码
  3. Image Processing图像处理(对比俩张图像的差异并且在图上标注出来)
  4. 力扣(LeetCode)刷题,简单题(第3期)
  5. authc过滤器 shiro_shrio 权限管理filterChainDefinitions过滤器配置
  6. ad19电气规则检查_建议收藏Altium Designer Rules规则详解
  7. LeetCode刷题记录15——21. Merge Two Sorted Lists(easy)
  8. Tensorflow::Session 释放内存
  9. Ubuntu 16.04.1 LTS上安装电源管理系统TLP
  10. Python基础学习1(Python的Windows和Linux的安装及简单学习)