关于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是独立的进程,所以可以进行分离,也可以准备不同的服务器。