注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Tenhlf的博客

 
 
 

日志

 
 

(转)nginx并支持php(fastcgi方式)配置详解  

2010-02-11 16:33:13|  分类: FreeBSD |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
       Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻等门户网站频道,六间房、56.com等视频分享网站,Discuz!官方论坛、水木社区 等知名论坛,豆瓣、YUPOO相册、海内SNS、迅雷在线等新兴Web 2.0网站。
张宴的文章就起了一个很极端的名字(上面那段话也是抄他的),说nginx的性能比apache好十倍(原文点这里),这虽然显得有点夸张了,但是至少说明nginx的性能卓越性。
现在就就来学习在freebsd7.0中安装及配置nginx,这里只是把apache换成nginx,其他php等都不变:
一、安装nginx 0.6.33
cd /usr/ports
[root@bsd01 ports]#make search key=^nginx
Port:   nginx-0.6.32_1
Path:   /usr/ports/www/nginx
Info:   Robust and small WWW server
Port:   nginx-devel-0.7.21
Path:   /usr/ports/www/nginx-devel
Info:   Robust and small WWW server
freebsd上有2个,一个0.6.33(这里查询显示nginx-0.6.32_1)是稳定版,0.7.21是最新的开发版,所以这里安装0.6.33。
cd www/nginx
[root@bsd01 nginx]#make install clean
接着出来“make config”的菜单,选择需要的组件即可:

─────────────────────────────────────
[  ]   DEBUG                 Enable nginx debugging
[  ]   GOOGLE_PERFTOOLS      Enable google perftools module
[X]   HTTP_MODULE           Enable HTTP module
[X]   HTTP_ADDITION_MODULE  Enable http_addition module
[X]   HTTP_DAV_MODULE       Enable http_webdav module
[X]   HTTP_FLV_MODULE       Enable http_flv module
[X]   HTTP_PERL_MODULE      Enable http_perl module
[X]   HTTP_REALIP_MODULE    Enable http_realip module
[X]   HTTP_REWRITE_MODULE   Enable http_rewrite module
[X]   HTTP_SSL_MODULE       Enable http_ssl module
[X]   HTTP_STATUS_MODULE    Enable http_stub_status module
[X]   HTTP_SUB_MODULE       Enable http_sub module
[  ]   MAIL_MODULE           Enable IMAP4/POP3/SMTP proxy module
[  ]   MAIL_IMAP_MODULE      Enable IMAP4 proxy module
[  ]   MAIL_POP3_MODULE      Enable POP3 proxy module
[  ]   MAIL_SMTP_MODULE      Enable SMTP proxy module      
[  ]   MAIL_SSL_MODULE       Enable mail_ssl module
[X]   WWW                   Enable html sample files
tab到OK,开始安装。
安装完后,配置目录位于/usr/local/etc/nginx内,这个是freebsd的规则了,闭着眼睛都知道。主配置文件就是nginx.conf。
由于前面已经安装了php这些,这里就不用安装了,只要把php配置到nginx上就可以了。为了测试,我也把apache先停了,以免冲突。
nginx 目前还不能直接支持php,必须先借助于fastcgi来驱动php。现在fastcgi较好的办法有2种,一个是spawn-fcgi,另外一个就是 php-fpm,一般来说可能php-fpm更强大一点,但是spawn-fcgi也有相当数量的人在使用,所以就看自己习惯了。所以我2个都做了一遍。
二、使用spawn-fcgi支持php
▼首先需要安装lighttpd,以取得spawn-cgi:
cd /usr/ports/www/lighttpd
[root@bsd01 lighttpd]#make install clean
▼编辑nginx.con文件:
vi /usr/local/etc/nginx/nginx.conf
user  nobody;

三、使用php-fpm支持php
▼先下载php-fpm插件,然后解压到/usr/ports/lang目录。然后就可以使用ports来安装它了。
fetch http://alamster.googlepages.com/php5-fpm.5.2.6.tar.gz
php5-fpm.5.2.6.tar.gz                         100% of   11 kB  140 kBps
[root@bsd01 ~]#tar zxf php5-fpm.5.2.6.tar.gz -C /usr/ports/lang
[root@bsd01 ~]#cd /usr/ports/lang/php5-fpm/
[root@bsd01 php5-fpm]#make install
然后会出现“make config”的界面,选择需要的组件即可:

────────────────────────────────────────
[X]   CLI        Build CLI version
[  ]   DEBUG      Enable debug
[X]   SUHOSIN    Enable Suhosin protection system (not for jails)
[X]   MULTIBYTE  Enable zend multibyte support
[  ]   IPV6       Enable ipv6 support
[  ]   MAILHEAD   Enable mail header patch
[X]   PATHINFO   Enable path-info-check support
然后tab到OK开始安装。
───────────────────────────────────────────────────
【注意:】如果编译出错,提示"cannot install: unknown AUTOCONF version: 261."
则需要编辑/usr/ports/lang/php5-fpm/中的Makefile文件,设置你系统正确的autoconf版本。
先使用“pkg_info | grep autoconf”命令查看系统的autoconf的版本,比如我的是autoconf 2.62,
则把"USE_AUTOTOOLS=  autoconf:261"修改为"USE_AUTOTOOLS=  autoconf:262"即可。
───────────────────────────────────────────────────
▼然后复制一下php-fpm的配置文件:
cd /usr/local/etc
[root@bsd01 etc]#cp php-fpm.conf.dist php-fpm.conf
编辑php-pfm.conf文件,让php-cgi以www用户启动(与nginx一样):
chmod u+w php-fpm.conf
[root@bsd01 etc]#vi php-fpm.conf
Unix user of processes        (转)nginx并支持php(fastcgi方式)配置详解 - tenhlf - Tenhlf的博客
<!–  <value name="user">nobody</value>    –>
Unix group of processes
<!–  <value name="group">nobody</value>    –>
(转)nginx并支持php(fastcgi方式)配置详解 - tenhlf - Tenhlf的博客
Unix user of processes
<value name="user">www</value>
Unix group of processes
<value name="group">www</value>(转)nginx并支持php(fastcgi方式)配置详解 - tenhlf - Tenhlf的博客
/usr/local/etc/rc.d/php-fpm start
Starting php_fpm.
[root@bsd01 etc]#/usr/local/etc/rc.d/nginx start
Performing sanity check on nginx configuration:
2008/12/01 00:04:26 [info] 1136#0: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
2008/12/01 00:04:26 [info] 1136#0: the configuration file /usr/local/etc/nginx/nginx.conf was tested successfully
Starting nginx.
测试一下服务器,可以访问就大功告成了。
四、让nginx自动启动
如果让nginx开始自动启动在/etc/rc.conf中加入nginx_enable="YES"。
如果使用php-fpm则需要在/etc/rc.conf中加入 php_fpm_enable="YES"。
五、相关资源
php5-fpm.5.2.6.tar.gz:http://www.coos.cn/downloads/freebsd/php5-fpm.5.2.6.tar.gz
  评论这张
 
阅读(2078)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018