Nginx + PHP (via php-fpm) on Ubuntu 环境最佳实践

Update: 请看更新版本Nginx + PHP (via php-fpm) on Ubuntu 环境最佳实践12.04版

Nginx团队维护的PPA源带有PHP 5.3.x的子源,更新迅速,现在在Ubuntu部署Nginx+PHP环境真是太容易了(虽然LAMP更容易,一句apt-get install lamp-server^搞定,别漏了最后的上尖号)。像以前那样跑cgi-fcgi简直弱爆了。

UPDATE: 2012/03/15 Nginx的ppa团队决定不再维护php包了……所以只能用别人的ppa..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
apt-get install python-software-properties
add-apt-repository ppa:nginx/stable
#add-apt-repository ppa:nginx/php5 #not valid any more
add-apt-repository ppa:brianmercer/php5
 
#Ubuntu 10.10 以后可不需添加以上源
 
apt-get update
apt-get install nginx
apt-get install php5-cgi php5-mysql php5-fpm php5-curl php5-mcrypt 
 
#或者你需要更齐全的php包:
#aptitude install php5-cgi php5-mysql php5-fpm 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
 
service nginx start
service php5-fpm start

FPM Tunning

php5-fpm默认参数启动的服务器还是比较耗资源的,如果环境不充裕(如512内存以下的VPS),可以做下配置。

这个包的fpm的默认配置文件是/etc/php5/fpm/main.conf,但对子进程的配置是在其包含的/etc/php5/fpm/pool.d/目录内,里面有个www.conf,可以对以下的参数做以下修改:

pm = dynamic              ;动态管理php-fpm的子进程
pm.max_children = 5       ;最多的时候开不超过5个
pm.start_servers = 2      ;启动服务时候开2个
pm.min_spare_servers = 2  ;空闲时候最少留2个
pm.max_spare_servers = 5  ;最多留5个
pm.max_requests = 300     ;每个子进程最多处理300个请求就退出换新的子进程。

按需调整这些参数可以达到最佳动态分配资源的效果。

文章分类 Unix/Linux, web技术 标签: , ,

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*