Nginx+Php5-fpm在Ubuntu10.04中的安装配置方法

自从前不久在电信通机房放置了一台新服务器之后,我就开始尝试完全用nginx来部署http服务。

nginx与php有两种主流的配合方式,spawn-fcgi和php-fpm。

spawn-fcgi完全独立运行,可以和各种cgi语言配合; php-fpm专为php而设计,需要对php打补丁。

性能上php-fpm略占上风,功能上php-fpm也略强一些,毕竟它是专门为php而生的嘛。可惜还没有进入php-fpm在10.04的ubuntu官方源,而spawn-fcgi直接通过apt-get就可以安装。

所以之前我采用了nginx+spawn-fcgi+php-cgi的方式,具体方法参考:

http://forum.ubuntu.org.cn/viewtopic.php?f=54&t=241301

前两天惊喜地发现php5-fpm已经进入了php 5.3.3官方的组件库,也就是说以后不需要再对php打补丁,直接安装php-fpm就可以用了。

顺藤摸瓜,我进而发现在还在内测的ubuntu10.10的源中,php已经升级到了5.3.3,并有php5-fpm这个软件包可以直接apt-get 安装了。

可惜生产环境中的几台服务器,装的都是10.04,官方源的php版本最新只到5.3.2,也没有php5-fpm这个软件包。

搜索了一番发现,php5-fpm有非官方源可以用,于是我就能完全通过apt-get安装nginx+php5-fpm了,下面介绍一下完整的安装过程(基于ubuntu 10.04)

0.确认系统中80端口和9000端口没有被占用,如果已经安装了apache和spawn-fcgi的话要先卸载

1.编辑sources.list,添加nginx和php5-fpm的非官方源

deb http://ppa.launchpad.net/jdub/devel/ubuntu maverick main

deb http://ppa.launchpad.net/brianmercer/php/ubuntu lucid main
deb-src http://ppa.launchpad.net/brianmercer/php/ubuntu lucid main

2.更新源的软件包数据,会发现这两个非官方源需要key,不管它,不影响正常使用

sudo apt-get update

3.安装nginx, php5-fpm, php5-cgi。并根据自己需要安装其他php组件

sudo apt-get install nginx php5-fpm
sudo apt-get install php-apc php5-curl php5-gd php5-imagick php5-mysql php5-memcache php5-memcached php5-mcrypt

4.配置nginx

sudo vi /etc/nginx/sites-available/default

贴一下我的nginx主机配置:

server {
listen   80; ## listen for ipv4
listen   [::]:80 default ipv6only=on; ## listen for ipv6

server_name localhost;

root   /var/www;

index  index.php index.html index.htm;

expires 14d;

#access_log  /var/log/nginx/localhost.access.log;

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param APPLICATION_ENV production;
include fcgi.conf;

expires off;
}
}

fcgi.conf:

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with –enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

5. 配置完成之后nginx重新载入配置:

sudo apt-get /etc/init.d/nginx reload

如果修改/etc/php5/fpm/php.ini中的配置,则需要重启php5-fpm:

sudo apt-get /etc/init.d/php5-fpm restart

到这里就大功告成了!测试后果然性能出众,远超apache+mod_php。而且这种nginx的转发模式,非常适合把nginx的前端和php5-fpm分开部署到不同的两台独立服务器上。

参考文献:

http://blog.163.com/dai-666600/blog/static/10439703620106217563353/

http://www.boxedthrills.com/2010/07/14/ubuntu-server-10-04-lts-nginx-php-mysql/

---------------

原文链接:http://shen2.cn/tag/php5-fpm/

---------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值