fastcgi安裝


fastcgi安裝

這里及以下的web服務器都是以nginx為例子和說明,php以5.3為例子。

php-fpm

fastcgi在服務器上會啟動多個進程進行解析,這個時候就需要一個fastcgi的管理器,管理哪個子進程可以結束,哪個進行應該開啟了。

fastcgi的進程管理器有兩種,spawn-fcgi和php-fpm。其中的spawn-fcgi一般是和lighttp配合使用的。而php-fpm一般會配合nginx來使用。

安裝

下載php和php-fpm源碼包

php下載地址:http://php.net/downloads.php

php-fpm下載地址:http://php-fpm.org/downloads/

在下載php-fpm的時候,需要盡量使php版本和php-fpm版本一致或者版本差別最小,否則有可能會出現兼容性的問題。

配置安裝環境

php需要下面軟件的支持,如果沒有安裝,請自行安裝:

gcc gcc-c++ libxml2 libxml2-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel  zlib zlib-devel glibc glibc-devel glib2 glib2-devel

編譯安裝php和php-fpm

[root@localhost local]#tar zxvf php-5.2.13.tar.gz  
[root@localhost local]#gzip -cd php-5.2.13-fpm-0.5.13.diff.gz | patch -d php-5.2.13 -p1
[root@localhost local]#cd php-5.2.13  
[root@localhost php-5.2.13]#./configure  --prefix=/usr/local/php --enable-fastcgi --enable-fpm  
[root@localhost php-5.2.13]#make  
[root@localhost php-5.2.13]#make install  
[root@localhost php-5.2.13]cp php.ini-dist /usr/local/php/lib/php.ini

配置與優化php-fpm

php的配置文件存放在 /usr/local/php/lib/php.ini中。

而php-fpm的配置文件存放在 /usr/local/php/etc/php-fpm.conf中

其中的幾項配置需要注意:

標簽listen_address是配置fastcgi進程監聽的IP地址以及端口,默認是127.0.0.1:9000。

<value name="listen_address">127.0.0.1:9000</value>

標簽display_errors用來設置是否顯示PHP錯誤信息,默認是0,不顯示錯誤信息,設置為1可以顯示PHP錯誤信息。

<value name="display_errors">0</value>

標簽user和group用於設置運行FastCGI進程的用戶和用戶組。需要注意的是,這里指定的用戶和用戶組要和Nginx配置文件中指定的用戶和用戶組一致。

<value name="user">nobody</value>
<value name="group">nobody</value>

標簽max_children用於設置FastCGI的進程數。根據官方建議,小於2GB內存的服務器,可以只開啟64個進程,4GB以上內存的服務器可以開啟200個進程。也可以根據服務的內存數來估計需要開啟多少fastcgi進程數。大概一個fastcgi進程占20M的內存。

<value name="max_children">5</value>

標簽request_terminate_timeout用於設置FastCGI執行腳本的時間。默認是0s,也就是無限執行下去,這個參數設置好了可以用於保證不會有執行時間過長的php阻塞住fastcgi進程。

<value name="request_terminate_timeout">0s</value>

標簽rlimit_files用於設置PHP-FPM對打開文件描述符的限制,默認值為1024。這個標簽的值必須和Linux內核打開文件數關聯起來,例如要將此值設置為65535,就必須在Linux命令行執行'ulimit -HSn 65536'。

<value name="rlimit_files">1024</value>

標簽max_requests指明了每個children最多處理多少個請求后便會被關閉,默認的設置是500。

為什么會需要這個參數設置呢?php和fastcgi都是C寫的,一些php模塊什么的有可能實際上存在着內存泄露等問題,所以一般php作為守護進程一直執行是不大可取的行為。既然php有可能有內存泄露的問題,那么如果fastcgi進程一直執行着,那么就有可能導致機器的內存出現吃爆的現象。所以在執行一段時間之后,我們是希望fastcgi能自動重啟動。這個參數就是做這個用的。

<value name="max_requests">500</value>

標簽allowed_clients用於設置允許訪問FastCGI進程解析器的IP地址。如果不在這里指定IP地址,Nginx轉發過來的PHP解析請求將無法被接受。

<value name="allowed_clients">127.0.0.1</value>

啟動php-fpm

/usr/local/php/sbin/php-fpm  start

參考文章

http://ixdba.blog.51cto.com/2895551/806622


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM