如mod_phpPHP操作模式的比较,FastCGI和PHP-FPM

如mod_phpPHP操作模式的比较,FastCGI和PHP-FPM
总结

这篇文章是因为今天我们需要在Ubuntu构建LNMP环境编写,nginx使用PHP-FPM,所以我们安排的方式互动的Web服务器和PHP解释器。

我们都知道,PHP是一种跨平台,跨服务器的语言,这就是为什么它是如此受欢迎的原因。然而,很少有人知道,PHP解释器可以运行在不同的方式在一个Web服务器,PHP最常见的方式是运行在模块的模式(mod_php)在Apache,并默认方式为Apache运行PHP。但在nginx,nginx使用PHP-FPM。

本文是对这些概念的介绍。如果有错误的地方,请多多批评。

PHP处理器(PHP处理程序)是什么

首先要记住的是,任何Web服务器(Apache,Nginx,等)是用来把静态资源,如HTML和图片用户。Web服务器本身不能解释任何动态脚本(PHP、Python等),PHP处理器用于解释Web应用程序中的PHP代码,它被解释为HTML或其他静态资源。然后将分析结果发送到Web服务器。最后,它被Web服务器发送给用户,大多数Web服务器无法解析PHP代码,因此需要一个解析PHP代码的程序,PHP处理器就是其中之一。

mod_php

首先,看看PHP运行的Apache module.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子进程的内存开销

三.当php.ini文件更改,你需要重新启动Apache

FastCGI

FastCGI是互动的程序和Web服务器之间的一个共同的协议接口,是早期的CGI(公共网关接口)的一个变种。与CGI,FastCGI减少了与Web服务器交互的开销,同时可以处理更多的请求。

Apache可以在FastCGI的形式在mod_fcgid形式使用。其他的web服务器,如Lighttpd,Nginx,Cherokee,甚至微软的IIS,可以使用FastCGI。FastCGI,PHP的多个版本可以设置在同一时间,在某些情况下是非常有用的。

FastCGI也用suexec支持不同的用户用自己的实例PHP。这个功能在一个共享的环境改善的安全性显得尤为重要。而FastCGI保证性能,也降低了Web服务器的内存开销。

优势:

1。兼容大多数Web服务器

2。比mod_php内存少

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

缺点

1。配置复杂

2。谁都不知道

PHP-FPM(FastCGI进程管理器)

PHP-FPM是最新的Web服务器使用PHP,和是一个实现了PHP fastcgi.php-fpm是非常有用的Web应用在小VPS和多个服务器的运行。同时,它也可以通过任何Web服务器,兼容FastCGI。

PHP-FPM使管理员能够优雅地停止和启动PHP工作过程中不丢失任何查询。这让我们更新配置和二步不损失任何查询。这也让我们重新启动的过程中意外损坏的情况下迫切。

优势:

1。兼容大多数Web服务器

2。比mod_php内存少

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

缺点

1。配置复杂

2。谁都不知道

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

mod_php(DSO,动态共享对象)

CGI

suphp

FastCGI

总结

内容相对抽象,理解不深,记录留作参考
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部