月度归档:2008年09月

HowTo: Install Nginx and php-fpm on Linux

最近要为公司搭建新的开发环境,打算舍弃用了n年的apache,换换口味,装个nginx试试。
在网上找了很多文档,没有一个能让我顺利安装完成的。还是自己来整理整理吧……

1,Install Pcre

来这里获取Pcre的最新版本
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

#tar -zxf pcre-7.8.tar.gz
#cd pcre-7.8
#./configure
#make
#make install

2. Install Nginx(http://www.nginx.net/)

#tar -zxf nginx-0.6.32.tar.gz
#cd nginx-0.6.32
#./configure –prefix=/usr/local/nginx-0.6.32
#make
#make install

3. Install PHP with php-fpm (http://www.php.net/)

nginx是通过fastcgi来支持PHP的,使用php-fpm补丁是一个比较方便的管理fastcgi进程的解决方案。
比通过脚本或是lighttpd的spawn模块要简单的多。

下载好PHP后,来这里获取与PHP版本相对应的php-fpm补丁:http://php-fpm.anight.org/

#tar -zxf php-5.2.6.tar.gz
#cd php-5.2.6
#zcat ../php-5.2.6-fpm-0.5.8.diff.gz | patch -p1  #为PHP打补丁
#./configure –prefix=/usr/local/php-5.2.6 –with-sqlite=shared –enable-fastcgi –enable-fpm
#make
#make install
注:PHP的其他模块(如mysql、gd等)请按需自己配置

#cp php.ini-recommended /usr/local/php-5.2.6/lib/php.ini

修改php.ini

cgi.fix_pathinfo=1

4. Configuring

A. 配置nginx,在/usr/local/nginx-0.6.32/conf目录下新建名为php_fcgi.conf的文件,内容如下:

location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

修改nginx.conf文件,在需要支持PHP的虚拟主机配置中,加入如下一行:

include php_fcgi.conf;

B. 配置php-fpm模块,编辑/usr/local/php-5.2.6/etc/php-fpm.conf文件
找到“Unix user of processes”和“Unix group of processes”两段,将前面注释去掉,并将值改为与nginx配置相同的用户和组。如下:

Unix user of processes
<value name=”user”>www</value>

Unix group of processes
<value name=”group”>www</value>

5. Test and Over

至此,所有安装配置的工作都已经完成。运行下面两行命令来启动nginx和php-fpm服务:

/usr/local/php-5.2.6/sbin/php-fpm start
/usr/local/nginx-0.6.32/sbin/nginx

正确配置后,phpinfo() 页应如下显示:
phf.png
CGI/FastCGI work as Server API
phf2.png

由于文件内容太长,nginx.conf和虚拟主机的配置文件的内容就不放上来了
将这些乱七八糟的配置文件和php-fpm.conf一起打个包,放在这里提供下载吧

http://rui7905.googlecode.com/svn/trunk/nginx_php_fpm

在这一堆东西里,还有一个名为nginx.sh的启动控制脚本。
当确认nginx和php-fpm均正确的配置并可以正常运行后,可以使用此脚本进行日常维护。