fastcgi的工作方式:
fastcgi的工作方式是将php服务独立出来,用一个进程来运行php,而不是通过apache的模块加载php,这样php就工作在内存从,当响应apache服务器时,通过开启线程来大大提高执行效率,并且节约内存的使用。
(一)我们可以利用apache的fastcgi模块来构建apache+php.
1)下载mod_fastcgi-2.4.6.tar,并解压缩
tar xf mod_fastcgi-2.4.6.tar
2) 复制Makefile.AP2文件,重命名为Makefile,修改top_dir的值为系统上apache服务器的安装路径
# cd mod_fastcgi-2.4.6
# vim Makefile
top_dir = /usr/local/apache
3)安装mod_fastcgi, 并且编辑httpd.conf添加加载语句,使httpd可以加载到fastcgi模块,完成后重启httpd服务
# make install
# vim /etc/httpd/httpd.conf
LoadModule fastcgi_module modules/mod_fastcgi.so
如果你已经安装过php那么需要注释掉下面的一行
#LoadModule php5_module modules/libphp5.so
(二)编译安装php
1) 解压缩源码包,配置好编译选项
# tar xf php-5.3.6.tar.bz2
# cd php-5.3.6
# ./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql --enable-fpm --with-mcript --with-mbstring --with-gd --sysconfdir=/etc/php --with-mysqlli=/usr/local/mysql/bin/mysql_config
# make
# make install
2) 复制php配置文件和php-fpm配置文件到正确的位置
# cp php.ini-production /usr/local/php5/lib/php.ini
# cp /etc/php/php-fpm.conf.default /etc/php/php-fpm.conf
3) 此步骤源自:http://hi.baidu.com/winsyk/blog/item/31a0154324a4610372f05d52.html
编辑php-fpm.conf找到pm.min_spare_server ;pm.min_spare_servers = 5 去除;号
也可使用sed -i 's/;pm.min_spare_servers/pm.min_spare_servers/g' /etc/php/php-fpm.conf 进行替换
再次运行php-fpm进行启动,提示错误:
Nov 20 17:57:14.210553 [ALERT] [pool www] pm.max_spare_servers(0) must be a positive value
sed -i 's/;pm.max_spare_servers = 35/pm.max_spare_servers = 35/g' /etc/php-fpm.conf
再次运行php-fpm启动,提示错误:
Nov 20 17:58:55.248268 [WARNING] [pool www] pm.start_servers is not set. It's been set to 20
sed -i 's/;pm.start_servers = 20/pm.start_servers = 20/g' /etc/php-fpm.conf
再次运行php-fpm未提示错误,启动成功。
4) 编辑httpd.conf文件在添加如下几行
# vim /etc/httpd/httpd.conf
<IfModule fastcgi_module>
FastCgiExternalServer /usr/local/apache/cgi-bin/test-cgi -host 127.0.0.1:9000
AddType application/x-httpd-php .php
AddHandler php-fastcgi .php
Action php-fastcgi /cgi-bin/test-cgi
</IfModule>
5) 运行php-fpm,查看网络状态,看9000端口是否开启
# /usr/local/php5/sbin/php-fpm
# netstat -ntl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:916 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN
tcp 0 0 :::3306 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
6)重新httpd服务,打开网页测试php是否成功连接
# service httpd restart
---------------------------------------------------------------------------------
安装php加速器ZendOptimizer-3.3.9
1)下载并解压缩ZendOptimizer-3.3.9
# tar -xf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
2)安装
# cd ZendOptimizer-3.3.9-linux-glibc23-i386
# ./install.sh
一阵回车后,在下面的界面里输入php.ini所在路径
然后又是一阵回车,提示重新httpd服务确定
再一阵回车,完成安装