关于PHP的“应用服务器”

关于Web服务器的三层结构,其中包括”Web服务器”、”应用服务器”和”数据库服务器”。在Java中,有一个名为Tomcat的”应用服务器”,而在Ruby中,有一个专用于Ruby的”应用服务器”。

然而,我注意到PHP没有”应用服务器”这个概念,一直以来都对这个问题感到困惑,想知道为什么没有。不过,我已经找到了解决办法,现在将其总结如下。

PHP应用服务器 (PHP

过去我们使用的是Apacha,但通过在Apache上添加模块,可以实现应用服务器的功能,其中一个模块就是mod_php。

以前的做法是,
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php

但现在只需安装PHP即可,默认情况下已经自动添加了这些设置,因此不再需要特意安装。

安装和启动Apache。

$ sudo yum -y install httpd
$ sudo service httpd start

安装PHP

$ sudo yum -y install php

mod_php的设置

因为在这里默认已经有记录了,所以不需要特别设置。

重新启动Apache。

$ sudo service httpd restart

如果使用Apache,可以使用如下方式,是安全可靠的。

使用CGI

CGI是指计算机图形学的缩写。

通用网关接口(Common Gateway Interface,CGI)是一种在Web服务器上运行用户程序的机制。许多现有的Web服务器程序可以利用CGI的功能。Web服务器程序的主要功能是根据用户的请求,返回预先准备好的信息。

FastCGI是一种常见的Web服务器事务处理协议。

FastCGI是一种在Web服务器上运行用户程序的接口规范。它是OpenMarket公司在1990年代中期开发的,旨在解决CGI的问题,并且规范是公开的。

PHP-FPM 是一种处理 PHP 程序的方法。

FPM(FastCGI进程管理器)是PHP FastCGI实现的一种,在高负载网站上提供了有用的额外功能。

总结关于CGI的内容, or 简单说来,CGI是…

PHP通过运行名为php-fpm的独立进程,将Web服务器收到的请求转发到该进程中。由于运行在单独的进程中,可以将其视为独立的路径和通道。

然而,并不一定是在同一个Web服务器上,所以即使是“Apache+mod_php”也可以统一,但是CGI是独立的进程,所以可以进行分离,也可以准备不同的服务器。