当前位置:七道奇文章资讯系统安全Linux安全
日期:2011-01-23 03:26:00  来源:本站整理

<b>Nginx + PHP-FPM + APC=绝妙的组合</b>[Linux安全]

赞助商链接



  本文“<b>Nginx + PHP-FPM + APC=绝妙的组合</b>[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
本文所介绍的办法应当是目前让PHP最快的办法:Nginx + PHP-FPM + APC.我们将从安装Nginx http服务器、PHP和PHP-FPM补钉,以及APC,具体的讲授这种办法的具体配置及利用,终究的效果若何?相信会让你大吃一惊.

相关文章举荐:Ubuntu8.04快速搭建nginx+php系统  轻松搞定CentOS+Nginx+PHP+MySQL尺度生产环境

后台

过去两年多来,我们的网站一向运行Apache+mod_php模块,大大都时刻这个组合对付得过来,但随着流量的增添,我们注意到Apache已经显得很吃力了,它开始猖獗地吃内存,CPU也被全部抢占去了,我们需求找到一个更快的办法来办理问题.

Nginx是一个不错的挑选,很多指标都超越了Apache,如I/O、CPU、内存和恳求数/秒等,假如需求,随时可以从Google搜索相关信息.从我个人的测试后果来看,Nginx和Apache之间的差别是很明显的,不好意思,因为是非正式测试,因此相关数字我就不公布了,这也不是本文的重点.让我更自大的是,我只需求几个步骤便可以让性能远超Apache.

PHP-FPM?

很多人配置Nginx时大概城市挑选来自LightTPD项目的spawn-fcgi解析PHP,但利用spawn-fcgi有些问题,因此我打算放弃它另觅别的办法.PHP-FPM是PHP FastCGI Process Manager的缩写,即PHP FastCGI进程管理器,实际上它是PHP的一个补钉,旨在将FastCGI进程管理整合进PHP包中.

注意:即便你保持利用Apache,也有很多缘由跳过mod_php,直接通过FastCGI解析PHP.利用mod_php时,Apache处理载入PHP的每个恳求会载入全部的库,这是一个宏大的无畏开销.假如利用FastCGI,PHP的行为更象利用程序服务器,PHP-FPM以及spawn-fcgi按需求载入和杀掉PHP实例,这样做有很多好处,此中很重要的一点就是削减内存开销.

让我们开始吧

我们利用的是全新安装的Ubuntu 8.10 Intrepid,第一件事情是安装全部的依靠包.

  1. sudo apt-get install make bison flex gcc patch autoconf subversion locate  
  2. sudo apt-get install libxml2-dev libbz2-dev libpcre3-dev libssl-dev zlib1g-dev libmcrypt-dev libmhash-dev libmhash2 libcurl4-openssl-dev libpq-dev libpq5 libsyck0-dev
  3.  

预备好依靠包之后,我们便可以开始.

编译PHP

我们下载的是PHP 5.2.8源代码包,还有对应的PHP-FPM补钉,我们先打上补钉,然后再编译.

  1. cd /usr/local/src/  
  2. sudo wget http://us.php.net/get/php-5.2.8.tar.gz/from/this/mirror  
  3. sudo tar zvxf php-5.2.8.tar.gz  
  4. sudo wget http://php-fpm.anight.org/downloads/head/php-5.2.8-fpm-0.5.10.diff.gz  
  5. sudo gzip -cd php-5.2.8-fpm-0.5.10.diff.gz | sudo patch -d php-5.2.8 -p1  
  6. cd php-5.2.8  
  7. sudo ./configure --enable-fastcgi --enable-fpm --with-mcrypt --with-zlib --enable-mbstring --disable-pdo --with-pgsql --with-curl --disable-debug --enable-pic --disable-rpath --enable-inline-optimization --with-bz2 --with-xml --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-xslt --enable-memcache --enable-zip --with-pcre-regex  
  8. sudo  make all install  
  9. sudo  strip /usr/local/bin/php-cgi 

假如在运行上面号令时碰到错误,极大概是因为贫乏依靠包造成的.别的,确保你精确启用和禁用了特定的PHP配置选项.紧接着我们通过PECL安装一些将会用到的模块:

  1. sudo pecl install memcache  
  2. sudo pecl install apc  
  3. sudo pecl install syck-beta 

在安装apc模块时,请务必关闭Apache选项,假如你没有关闭,它也会提醒你.接下来复制我们常用的php.ini:

  1. sudo cp /usr/local/src/php-5.2.8/php.ini-recommended /usr/local/lib/php.ini 
  2.  

最后,我们成立标记链接:

  1. sudo mkdir /etc/php/  
  2. sudo ln -s /usr/local/lib/php.ini /etc/php/php.ini  
  3. sudo ln -s /usr/local/etc/php-fpm.conf /etc/php/php-fpm.conf 

PHP编译到此完毕,剩下要做的事情是改正php-fpm.conf设置,用文本编辑器翻开/etc/php/php-fpm.conf,将进程属主用户改正成www-data,这个文件对比大,因此最好利用搜索功效,我想改正的值辨别位于51、52、63和66行.

  1. <value name="owner">www-datavalue> 
  2. <value name="group">www-datavalue> 
  3. <value name="user">www-datavalue> 
  4. <value name="group">www-datavalue> 

  以上是“<b>Nginx + PHP-FPM + APC=绝妙的组合</b>[Linux安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .