总结
这篇文章是因为今天我们需要在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
总结
内容相对抽象,理解不深,记录留作
参考。