1.Nginx介绍
Nginx是一个非常轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和
反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器。
2.对PHP支持
目前各种web 服务器对PHP的支持一共有三种:
(1)通过web 服务器内置的模块来实现,例如Apache的mod_php5,类似的Apache内置的mod_perl
可以对perl支持。
(2)通过CGI来实现,这个就好比之前perl的CGI,该种方式的缺点是性能差,因为每次服务器遇到
这些脚本都需要重新启动脚本解析器来执行脚本然后将结果返回给服务器;
另一方面就是不太安全;该方面几乎很少使用了。
(3)最新出现一种叫做FastCGI。所谓FastCGI就是对CGI的改进。它一般采用C/S结构,一般脚本处理器
会启动一个或者多个daemon进程,每次web 服务器遇到脚本的时候,直接交付给FastCGI的进程来执行,然后
将得到的结果(通常为html)返回给浏览器。
2.1 Apache+mod_php模式
我们很久一段时间使用经典的Apache+mod_php。
Apache对PHP的支持是通过Apache的模块来支持的。如果从源代码编译安装PHP的话,如果希望Apache支持
PHP的话,在./configure步骤需要指定--with-apxs2=/usr/local/apache2/bin/apxs 表示告诉编译器通过
Apache的mod_php5/apxs来提供对PHP5的解析;而且在最后一步make install的时候我们会看到将动态链接库
libphp5.so拷贝到apache2的安装目录的modules目录下,并且还需要在httpd.conf配置文件中添加LoadModule
语句来动态将libphp5.so模块加载进来,从而实现Apache对php的支持。
2.2 Nginx+FastCGI模式
Nginx完全是轻量级的,必须借助第三方的FastCGI处理器才可以对PHP进行解析,因此其实这样看来Nginx是
非常灵活的,它可以和任何第三方提供解析的处理器实现连接从而实现对PHP的解析(在nginx.conf中很容易设置)。
Nginx可以使用spwan-fcgi。在早期版本中需要安装lighttpd,但是在9.10版本以后直接安装spawn-fcgi就可以。
现在出现了新的第三方的PHP的FastCGI处理器,叫做PHP-FPM,可以了解一下。本文是基于spawn-fcgi实现对
PHP模块的支持。
2.3 安装FastCGI
/usr/bin/spawn-fcgi这个文件来管理 FastCGI,它原属于lighttpd这个包里面,但 9.10 后,spawn-fcgi
被分离出来单独成包。
(1)使用apt-get在线安装命令如下:
$sudo apt-get install spawn-fcgi
(2)源代码安装如下,下载地址为:
http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz
解压缩以后,进入目录下执行如下安装命令:
$./configure
$make
$make install
安装之后,spawn-fcgi命令就可以直接使用了,它的可执行文件在/usr/local/bin/spawn-fcgi。
新闻热点
疑难解答