mod

   这篇文章主要介绍了mod_php、FastCGI、PHP-FPM等PHP运行方式对比,本文讲解了什么是PHP处理器(PHP handlers)、mod_php的优缺点、FastCGI的优缺点、PHP-FPM(FastCGI Process Manager)的优缺点等内容,需要的朋友可以参考下

  概述

  写这篇文章的是因为今天要Ubuntu下搭建LNMP环境,Nginx使用的是PHP-FPM,所以对Web服务器与PHP解释器的交互方式做了个整理。

  众所周知,PHP是跨平台、跨服务器的语言,这也是它如此流行的原因之一。但是,很少有人知道PHP解释器可以以不同的方式运行在Web服务器中。PHP最常用的方式是以模块的方式(mod_php)运行在Apache中,也是Apache运行PHP的默认方式。但是在Nginx中,Nginx又使用的是PHP-FPM。

  这篇文章就对这些概念做个介绍,如有不对的地方,请多多批评指教。

  什么是PHP处理器(PHP handlers)?

  首先需要记住的是,任何一种Web服务器(Apache、Nginx等)都是被设计成向用户发送html、图片等静态资源的,Web服务器自身并不能解释任何动态脚本(PHP、Python等)。PHP处理器就是用来解释Web应用中的PHP代码,并将它解释为HTML或其他静态资源,然后将解析的结果传给Web服务器,最后再由Web服务器发送给用户。大多数的Web服务器都不能解析PHP代码,因此它需要一个能解析PHP代码的程序,这就是PHP处理器。

  mod_php

  首先,来看一下以Apache模块方式运行PHP。mod_php现在在Linux各版本的软件仓库里都有,因此很容易被安装。

  当PHP以模块的方式运行在Apache中时,PHP解释器被“内嵌”在Apache的进程里。Apache不会调用任何外部的PHP进程,因此这种方式使Apache与PHP能更好的通信。但是,当以这种方式运行PHP的时候,哪怕Apache提供的仅仅是静态的资源(如HTML),Apache的每个子进程也都会载入 mod_php,导致了比正常情况下更多的内存开销。

  以这种方式运行的另一个缺点是,它仅能与Apache一起配合工作。另外,在小型的VPS和大型的网站中,这种方式也不合适,因为大型网站可能有很多静态资源,而这些静态资源是不需要PHP程序解释的。

  优点:

  1.易于安装和更新

  2.容配置

  缺点:

  1.仅能与Apache一起工作

  2.增加了Apache子进程内存开销

  3.当更改php.ini文件后,需要重启Apache

  FastCGI

  FastCGI是交互程序与Web服务器通用的协议接口,是早期CGI(Common Gateway Interface)的一个变种。相对于CGI来说,FastCGI减少了和Web服务器交互的开销,同时一次可以处理更多的请求。

  Apache可以以mod_fcgid的形式使用FastCGI。其他Web服务器,如lighttpd, nginx, Cherokee,甚至微软的IIS也都能使用FastCGI。使用FastCGI,可以同时设置多个版本的PHP,这在某些情况下非常有用。

  FastCGI还利用suexec来支持不同的用户用自己的PHP的实例。这个特性对于在共享环境下提高安全性尤其重要。FastCGI在保证性能的同时,也减少了Web服务器的内存开销。

  优点:

  1.兼容多数Web服务器

  2.比mod_php占内存小

  3.更多的配置项,包括多版本PHP和suexec

  缺点

  1.配置复杂

  2.不被大家所熟知

  PHP-FPM(FastCGI Process Manager)

  PHP-FPM是Web服务器使用PHP的一种最新方式,也是PHP FastCGI的另外一种实现。PHP-FPM对于运行在小型VPS和多服务器上的Web应用非常应用。同时,它也可以被兼容FastCGI的任何Web服务器所使用。

  PHP-FPM使管理员能够优雅地停止和启动PHP工作进程而不丢失任何查询。这允许我们逐步更新配置和二进制,而不会损失任何查询。它还允许我们在发生任何意外破坏的情况下,紧急重启进程。

  优点:

  1.兼容多数Web服务器

  2.比mod_php占内存小

  3.更多的配置项,包括多版本PHP和suexec

  缺点

  1.配置复杂

  2.不被大家所熟知

  补充:Apache运行PHP的四种方式

  mod_php (DSO,Dynamic Shared Object)

  CGI

  suPHP

  FastCGI

  总结

  内容相对抽象,理解的不深,记录下留作以后参考~:)

时间: 2024-07-28 12:42:37

mod的相关文章

php缓存mod

Apache模块 mod_file_cache 说明 提供文件描述符缓存支持,从而提高Apache性能 状态 实验(X) 模块名 file_cache_module 源文件 mod_file_cache.c <?php    header( "Expires:" . gmdate("D, d M Y H:i:s", time() + 3600 * 24) . " GMT");    header("Content-Type:ima

UVa 374 Big Mod:快速幂取模

374 - Big Mod Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=310 Calculate for large values of B, P, and M using an efficient algorithm. (That's right, t

启用Mod Rewrite和.htaccess

Apache的Mode Rewrite模块提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求.在大多数情况下,它和.htaccess文件配合使用.比如本篇文章的URL(http://dancewithnet.com/2010/05/29/making-mod-rewrite-and-htaccess-work-on-mac-os-x)就是Wordpress配合Mod Rewrite模块和.htaccess文件一起实现的,即所谓的固定链接(Permalinks). Windows 在Wi

php检测apache mod

 本文实例讲述了php检测apache mod_rewrite模块是否安装的方法.分享给大家供大家参考.具体实现方法如下: /** * @title Check if Apache's mod_rewrite is installed. * * @author Pierre-Henry Soria <ph7software@gmail.com> * @copyright (c) 2013, Pierre-Henry Soria. All Rights Reserved. * @return b

Excel2010使用MOD函数求余数

  经常我们使用Excel的时候会参与很多数据之间的运算,例如:加减乘除.恰巧就是除法,有的时候会除不尽,有余数.这该用什么方法显示出来呢?直接算出余数呢?其实我们可以用MOD函数来进行运算.直接算出两数相除的余数. 操作步骤 打开Excel2010,在A2.B2单元框中分别输入被除数和除数. 将C2当成输出单元格,在编辑栏中输入函数"=MOD(A2,B2)". 点击Enter键确定,在输出单元格中就出现了两数相除的余数了.

eMule中Mod是什么

  eMule的源代码是开放的,其中有些人基于源代码开发了修正的版本,称之为Mod,例如eMule Plus.这些版本不被官方的eMule小队所支持.

XP Mod Launcher仿XP桌面启动器的桌面软件

Android手机最吸引人的地方就是它的开源性,可以随意享受其他第三方应用所带来的乐趣.在Android手机上尝试Windows系统是一些手机发烧友们的探索项目,无论是远程控制还是虚拟机,都已经有人实现过,现在又有了一种新的方式.今天小编向大家介绍一款仿XP桌面启动器的桌面软件XP Mod Launcher. XP Mod Launcher是一款高仿微软电脑XP的桌面应用,可以让你的安卓手机一键恢复到经典的XP系统,软件本身内置程序开始菜单,同时还提供了资源管理器. 一.启动界面高仿微软XP系统

nmm载入MOD无效怎么办

  nmm载入MOD无效如何操作?nmm载入MOD没反应解决办法: 点击软件里的mod,然后从左侧的蓝色添加按钮加入mod,双击安装,左侧的plugins就会显示安装好的esp文件,有勾说明已经加载,没勾选中就行.

Hello minecraft launcher怎么安装Mod?

MOD的安装教程 第一步:点击游戏设置,找到mod管理并点击 第二步:找到添加字眼并点击,弹出选择MOD窗口 第三步:找到你MOD所在的地方,然后点击MOD最后在点击打开便可添加 第四步:每个MOD都算一条,你安装完MOD后,注意MOD条右侧小格子,如果没有打钩不能用,所以你要点击格子打钩 PS:forge游戏版本使用方法:点击主页-点击配置-选择配置-刚刚新建的配置-点击版本-选择你刚下的forge游戏版本-点击登入-选择离线-下方出现输入名字框-输入名字-启动Minecraft(在右下角)(

分享下Hello minecraft launcher中如何安装Mod的图文教程

MOD的安装教程 第一步:点击游戏设置,找到mod管理并点击 第二步:找到添加字眼并点击,弹出选择MOD窗口 第三步:找到你MOD所在的地方,然后点击MOD最后在点击打开便可添加 第四步:每个MOD都算一条,你安装完MOD后,注意MOD条右侧小格子,如果没有打钩不能用,所以你要点击格子打钩 PS:forge游戏版本使用方法:点击主页-点击配置-选择配置-刚刚新建的配置-点击版本-选择你刚下的forge游戏版本-点击登入-选择离线-下方出现输入名字框-输入名字-启动Minecraft(在右下角)(