PHP5通过FastCGI在nginx下运行。乌班图提供一个FastCGI-enabled PHP5 安装包,可以这样安装。
apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
打开 /etc/php5/cgi/php.ini 配置文件,在最后一行添加cgi.fix_pathinfo = 1
vi /etc/php5/cgi/php.ini
[...]
cgi.fix_pathinfo = 1
Ubuntu没有独立的FastCGI安装包,所以用lighttpd里面的spawn-fcgi,运行下面命令:
apt-get install lighttpd
安装完成时会出现lighttpd无法启动的错误,因为nginx占用了80端口。运行
update-rc.d -f lighttpd remove
使lighttpd开机不启动。
我们安装lighttpd只需要其中的/usr/bin/spawn-fcgi,来运行FastCGI进程。运行
spawn-fcgi --help
查看它的命令帮助。
以用户www-data在本机localhost的9000端口下运行一个PHP FastCGI进程,输入以下命令
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
加入开机运行,以免每次开机运行此命令。
vi /etc/rc.local
在最后一行加入下面语句(在exit前面)。
[...]
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
[...]
5、nginx配置
编辑配置文件
vi /etc/nginx/nginx.conf
首先(可选) 增加worker processes 的数量,设置keepalive_timeout 到适当的值:
[...]
worker_processes 5;
[...]
keepalive_timeout 2;
[...]