日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Nginx PHP-FPM APC=絕妙的組合(1) - 51CTO.COM

 software1 2010-05-07
    本文將介紹目前讓PHP最快的方法:Nginx + PHP-FPM + APC,看似有些復(fù)雜,實(shí)際上我們只需要幾個(gè)步驟就可以完成,并且性能遠(yuǎn)超Apache,有興趣的朋友不妨去試一試。

     

    【51CTO獨(dú)家特稿】本文所介紹的方法應(yīng)該是目前讓PHP最快的辦法:Nginx + PHP-FPM + APC。我們將從安裝Nginx http服務(wù)器、PHP和PHP-FPM補(bǔ)丁,以及APC,詳細(xì)的講解這種方法的具體配置及應(yīng)用,最終的效果如何?相信會讓你大吃一驚。

    相關(guān)文章推薦:Nginx http服務(wù)相關(guān)的配置文件 Nginx+PHP配置相關(guān)進(jìn)程的簡要介紹

    背景

    過去兩年多來,我們的網(wǎng)站一直運(yùn)行Apache+mod_php模塊,大多數(shù)時(shí)候這個(gè)組合應(yīng)付得過來,但隨著流量的增加,我們注意到Apache已 經(jīng)顯得很吃力了,它開始瘋狂地吃內(nèi)存,CPU也被全部搶占去了,我們需要找到一個(gè)更快的方法來解決問題。

    Nginx是一個(gè)不錯(cuò)的選擇,很多指標(biāo)都超過了Apache,如I/O、CPU、內(nèi)存和請求數(shù)/秒等,如果需要,隨時(shí)可以從Google搜索相關(guān)信 息。從我個(gè)人的測試結(jié)果來看,Nginx和Apache之間的差異是很明顯的,不好意思,因?yàn)槭欠钦綔y試,因此相關(guān)數(shù)字我就不公布了,這也不是本文的重 點(diǎn)。讓我更自信的是,我只需要幾個(gè)步驟就可以讓性能遠(yuǎn)超Apache。

    PHP-FPM?

    很多人配置Nginx時(shí)可能都會選擇來自LightTPD項(xiàng)目的spawn-fcgi解析PHP,但使用spawn-fcgi有些問題,因此我打算 放棄它另覓別的辦法。PHP-FPM是PHP FastCGI Process Manager的縮寫,即PHP FastCGI進(jìn)程管理器,實(shí)際上它是PHP的一個(gè)補(bǔ)丁,旨在將FastCGI進(jìn)程管理整合進(jìn)PHP包中。

    注意:即使你堅(jiān)持使用Apache,也有很多原因跳過mod_php,直接通過FastCGI解析PHP。使用mod_php時(shí),Apache處理 載入PHP的每個(gè)請求會載入所有的庫,這是一個(gè)巨大的無畏開銷。如果使用FastCGI,PHP的行為更象應(yīng)用程序服務(wù)器,PHP-FPM以及 spawn-fcgi按需要載入和殺掉PHP實(shí)例,這樣做有很多好處,其中很重要的一點(diǎn)就是減少內(nèi)存開銷。

    讓我們開始吧

    我們使用的是全新安裝的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.  

    準(zhǔn)備好依賴包之后,我們就可以開始。

    編譯PHP

    我們下載的是PHP 5.2.8源代碼包,還有對應(yīng)的PHP-FPM補(bǔ)丁,我們先打上補(bǔ)丁,然后再編譯。

            
    1. cd /usr/local/src/  
    2. sudo wget http://us./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./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 

    如果在運(yùn)行上面命令時(shí)遇到錯(cuò)誤,很可能是因?yàn)槿鄙僖蕾嚢斐傻?。另外,確保你正確啟用和禁用了特定的PHP配置選項(xiàng)。緊接著我們通過PECL安裝一 些將會用到的模塊:

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

    在安裝apc模塊時(shí),請務(wù)必關(guān)閉Apache選項(xiàng),如果你沒有關(guān)閉,它也會提醒你。接下來復(fù)制我們常用的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編譯到此結(jié)束,剩下要做的事情是修改php-fpm.conf設(shè)置,用文本編輯器打開/etc/php/php-fpm.conf,將進(jìn)程屬 主用戶修改為www-data,這個(gè)文件比較大,因此最好使用搜索功能,我想修改的值分別位于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> 


    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多