當前位置:首頁 > 芯聞號 > 充電吧
[導讀]php與nginx整合 PHP-FPM也是一個第三方的FastCGI進程管理器,它是作為PHP的一個補丁來開發(fā)的,在安裝的時候也需要和PHP源碼一起編譯,也就是說PHP-FPM被編譯到PHP內核中,因

php與nginx整合

PHP-FPM也是一個第三方的FastCGI進程管理器,它是作為PHP的一個補丁來開發(fā)的,在安裝的時候也需要和PHP源碼一起編譯,也就是說PHP-FPM被編譯到PHP內核中,因此在處理性能方面更加優(yōu)秀;同時它在處理高并發(fā)方面也比spawn-fcgi引擎好很多,因此,推薦Nginx+PHP/PHP-FPM這個組合對PHP進行解析。
FastCGI 的主要優(yōu)點是把動態(tài)語言和HTTP Server分離開來,所以Nginx與PHP/PHP-FPM經(jīng)常被部署在不同的服務器上,以分擔前端Nginx服務器的壓力,使Nginx專一處理靜態(tài)請求和轉發(fā)動態(tài)請求,而PHP/PHP-FPM服務器專一解析PHP動態(tài)請求

#fastcgi
FastCGI是一個可伸縮地、高速地在HTTP server和動態(tài)腳本語言間通信的接口。多數(shù)流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同時,F(xiàn)astCGI也被許多腳本語言所支持,其中就有PHP。
FastCGI是從CGI發(fā)展改進而來的。傳統(tǒng)CGI接口方式的主要缺點是性能很差,因為每次HTTP服務器遇到動態(tài)程序時都需要重新啟動腳本解析器來執(zhí)行解析,然后結果被返回給HTTP服務器。這在處理高并發(fā)訪問時,幾乎是不可用的。另外傳統(tǒng)的CGI接口方式安全性也很差,現(xiàn)在已經(jīng)很少被使用了。
FastCGI接口方式采用C/S結構,可以將HTTP服務器和腳本解析服務器分開,同時在腳本解析服務器上啟動一個或者多個腳本解析守護進程。當HTTP服務器每次遇到動態(tài)程序時,可以將其直接交付給FastCGI進程來執(zhí)行,然后將得到的結果返回給瀏覽器。這種方式可以讓HTTP服務器專一地處理靜態(tài)請求或者將動態(tài)腳本服務器的結果返回給客戶端,這在很大程度上提高了整個應用系統(tǒng)的性能。
Nginx+FastCGI運行原理
Nginx不支持對外部程序的直接調用或者解析,所有的外部程序(包括PHP)必須通過FastCGI接口來調用。FastCGI接口在Linux下是socket,(這個socket可以是文件socket,也可以是ip socket)。為了調用CGI程序,還需要一個FastCGI的wrapper(wrapper可以理解為用于啟動另一個程序的程序),這個wrapper綁定在某個固定socket上,如端口或者文件socket。當Nginx將CGI請求發(fā)送給這個socket的時候,通過FastCGI接口,wrapper接納到請求,然后派生出一個新的線程,這個線程調用解釋器或者外部程序處理腳本并讀取返回數(shù)據(jù);接著,wrapper再將返回的數(shù)據(jù)通過FastCGI接口,沿著固定的socket傳遞給Nginx;最后,Nginx將返回的數(shù)據(jù)發(fā)送給客戶端,這就是Nginx+FastCGI的整個運作過程。

php與nginx整合
php.ini:php的主配置文件

? 1 [root@server79 php-5.4.12]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini

拷貝php的啟動腳本

? 1 2 3 [root@server79 fpm]# pwd /root/php-5.4.12/sapi/fpm [root@server79 fpm]# cp init.d.php-fpm /etc/init.d/php-fpm

給啟動腳本加可執(zhí)行權限

? 1 2 3 4 5 6 [root@server79 fpm]# chmod +x /etc/init.d/php-fpm [root@server79 ~]# vim /usr/local/lnmp/php/etc/php.ini cgi.fix_pathinfo=0 date.timezone = /Asia/Shanghai [root@server79 ~]# cp /usr/local/lnmp/php/etc/php-fpm.conf.default /usr/local/lnmp/php/etc/php-fpm.conf [root@server79 etc]# vim php-fpm.conf

打開注釋pid = run/php-fpm.pid

php-fpm.conf文件參數(shù)解析
PHP的全局配置文件是php.ini,在上面的步驟中,已經(jīng)將此文件復制到了/usr/local/lnmp/php/etc/php.ini下??梢愿鶕?jù)每個應用需求的不同,對php.ini進行相應的配置。
下面重點介紹PHP-FPM引擎的配置文件。
根據(jù)上面指定的安裝路徑,PHP-FPM的默認配置文件為/usr/local/lnmp/php/etc/php-fpm.conf。
php-fpm.conf是一個XML格式的純文本文件,其內容很容易看明白。這里重點介紹幾個重要的配置標簽:
標簽listen_address是配置fastcgi進程監(jiān)聽的IP地址以及端口,默認是127.0.0.1:9000。

? 1 listen = 127.0.0.1:9000

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

? 1 2 user = nginx group = nginx

標簽max_children用于設置FastCGI的進程數(shù)。根據(jù)官方建議,小于2GB內存的服務器,可以只開啟64個進程,4GB以上內存的服務器可以開啟200個進程。

? 1 5

標簽request_terminate_timeout用于設置FastCGI執(zhí)行腳本的時間。默認是0s,也就是無限執(zhí)行下去,可以根據(jù)情況對其進行修改。

? 1 0s

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

? 1 1024

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

? 1 pm.max_requests = 500

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

? 1 127.0.0.1

5.管理FastCGI進程
在配置完php-fpm后,就可以啟動FastCGI進程了。啟動fastcgi進程有兩種方式:

? 1 /usr/local/php/bin/php-cgi --fpm 或者
? 1 /usr/local/php/sbin/php-fpm start

建議采用第二種方式啟動FastCGI進程。
/usr/local/php/sbin/php-fpm還有其他參數(shù),具體為start|stop|quit|restart|reload|logrotate。
每個啟動參數(shù)的含義如下:

q start,啟動PHP的FastCGI進程。q stop,強制終止PHP的FastCGI進程。q quit,平滑終止PHP的FastCGI進程。q restart,重啟PHP的FastCGI進程。q reload,重新加載PHP的php.ini。q logrotate,重新啟用log文件。reload是個很重要的參數(shù),它可以在PHP的FastCGI進程不中斷的情況下重新加載改動過的php.ini,因此通過php-fpm可以平滑變更FastCGI模式下的PHP設置。
本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉