這篇文章主要為大家展示了FastCGI怎么安裝PHP,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶大家一起來研究并學(xué)習(xí)一下“FastCGI怎么安裝PHP”這篇文章吧。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供清原網(wǎng)站建設(shè)、清原做網(wǎng)站、清原網(wǎng)站設(shè)計(jì)、清原網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、清原企業(yè)網(wǎng)站模板建站服務(wù),10多年清原做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
FastCGI安裝PHP的方法:1、下載php和php-fpm包;2、配置安裝環(huán)境;3、編譯安裝php和php-fpm;4、通過“/usr/local/php/sbin/php-fpm start”啟動(dòng)FastCGI進(jìn)程即可。

本文操作環(huán)境:Windows7系統(tǒng)、PHP7.1版、DELL G3電腦
FastCGI怎么安裝PHP?Nginx與PHP(FastCGI)的安裝、配置和優(yōu)化
什么是FastCGI
FastCGI是一種可伸縮的、高速的在HTTP server和動(dòng)態(tài)腳本語言間通信的接口。FastCGI也被眾多腳本語言支持,包括PHP。
FastCGI是從CGI發(fā)展而來的。FastCGI接口方式采用C/S結(jié)構(gòu),可以將HTTP服務(wù)器和腳本解析服務(wù)器分離開,同時(shí)在腳本解析服務(wù)器上啟動(dòng)一個(gè)或多個(gè)腳本解析守護(hù)進(jìn)程。
當(dāng)HTTP服務(wù)器每次遇到動(dòng)態(tài)城區(qū)時(shí),直接交付給FastCGI進(jìn)程執(zhí)行,然后返回結(jié)果給瀏覽器,提高了系統(tǒng)的整體性能。
Nginx并不支持對(duì)外部程序的直接調(diào)用或解析,所有外部程序都要通過FastCGI接口來調(diào)用。為了調(diào)用CGI程序,還需要一個(gè)FastCGI的wrapper,可以理解為用于啟動(dòng)另一個(gè)程序的程序。
這個(gè)wrapper綁定在某個(gè)固定的socket上,如端口或文件socket。當(dāng)Nginx將CGI請(qǐng)求發(fā)送給socket時(shí),通過FastCGI接口,wrapper接收到請(qǐng)求,派生一個(gè)新的線程,此線程調(diào)用解釋器或外部程序處理腳本并讀取返回?cái)?shù)據(jù),接著wrapper將返回?cái)?shù)據(jù)通過FastCGI接口傳給Nginx,最后Nginx再返回給客戶端。
FastCGI接口在腳本解析服務(wù)器上啟動(dòng)一個(gè)或多個(gè)守護(hù)進(jìn)程動(dòng)態(tài)解析腳本,這也成為FastCGI進(jìn)程管理器,spawn-fcgi與PHP-FPM就是兩個(gè)進(jìn)程管理器。
spawn-fcgi:是HTTP服務(wù)器lighttpd的一部分,目前已是獨(dú)立成為一個(gè)項(xiàng)目,一般與lighttpd配合使用來支持PHP。但是spawn-fcgi在高并發(fā)的時(shí)候會(huì)出現(xiàn)內(nèi)存泄漏甚至自動(dòng)重啟FastCGI。
PHP-FPM:第三方的FastCGI進(jìn)程管理器,它是作為PHP的一個(gè)補(bǔ)丁來開發(fā)的。在安裝過程中也需要和PHP源碼一起編譯,也就是說PHP-FPM被編譯到PHP內(nèi)核,因此性能方面更加優(yōu)秀。同時(shí)其處理高并發(fā)方面能力也好很多。
因?yàn)镕astCGI的優(yōu)點(diǎn)是把動(dòng)態(tài)語言和HTTP server分離開,所以Nginx與PHP/PHP-FPM經(jīng)常被部署到不通的服務(wù)器上,以分擔(dān)Nginx前端的壓力,使Nginx專注處理靜態(tài)請(qǐng)求,PHP/PHP-FPM解析PHP動(dòng)態(tài)請(qǐng)求。
下載php包:www.php.net,這里使用php-5.2.13.tar.gz
下載php-fpm包:php-fpm.org,這里使用php-5.2.13-fpm-0.5.13.diff.gz
注意:最好php和php-fpm版本一致,否則可能會(huì)出現(xiàn)兼容性問題。
需要的依賴包包括:
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等
根據(jù)系統(tǒng)版本的不同,可能依賴的包也不同。
解壓縮php的源碼包并將php-fpm當(dāng)做補(bǔ)丁打入php源碼中。
tar zxf php-5.2.13.tar.gzgzip -cd php-5.2.13-fpm-0.5.13.diff.gz | patch -d php-5.2.13 -p1
編譯安裝,同時(shí)啟動(dòng)對(duì)FastCGI的支持,激活對(duì)FastCGI模式的fpm的支持。
cd php-5.2.13./configure --prefix=/usr/local/php --enable-fastcgi --enable-fpmmake && make install cp php-ini-dist /usr/local/php/lib/php.ini
php的主配置文件為php.ini;
php-fpm的主配置文件為php-fpm.conf,位于/usr/local/php/etc/下,是一個(gè)xml格式的文件,下面介紹幾個(gè)常用的標(biāo)簽:
<value name="listen_address">127.0.0.1:9000</value>:表示配置FastCGI進(jìn)程監(jiān)聽的IP地址和端口,默認(rèn)為本地的9000; <value name="display_errors">0</value>:表示是否顯示php錯(cuò)誤信息,默認(rèn)為0表示不顯示,設(shè)置為1表示顯示錯(cuò)誤信息; <value name="user">nobody</value>:表示設(shè)置運(yùn)行FastCGI進(jìn)程的用戶,需要和nginx配置文件中的用戶一致; <value name="group">nobody</value>:表示設(shè)置運(yùn)行FastCGI進(jìn)程的用戶組,需要和nginx配置文件中的用戶組一致; <value name="max_children">5</value>:設(shè)置FastCGI的進(jìn)程數(shù),官方建議小于2G內(nèi)存,可以只開啟64個(gè)進(jìn)程;4G以上可以開啟200個(gè)進(jìn)程; <value name="request_terminate_timeout">0s</value>:設(shè)置FastCGI執(zhí)行腳本的時(shí)間,默認(rèn)0s,意味著無限執(zhí)行下去; <value name="rlimit_files">1024</value>:設(shè)置php-fpm打開文件描述符的限制,默認(rèn)1024,這個(gè)值最好要和內(nèi)核打開的文件數(shù)一致; <value name="max_requests">500</value>:設(shè)置每一個(gè)進(jìn)程最多處理多少個(gè)請(qǐng)求后會(huì)被關(guān)閉,默認(rèn)500; <value name="allowed_clients">127.0.0.1</value>:設(shè)置允許訪問FastCGI進(jìn)程解析器的IP地址,如果不設(shè)置IP地址,則無法接受nginx傳來的php解析請(qǐng)求;
啟動(dòng)FastCGI進(jìn)程的方法如下:
/usr/local/php/sbin/php-fpm start
參數(shù)的含義如下:
start:?jiǎn)?dòng)php的fastcgi進(jìn)程;
stop:強(qiáng)制停止php的fastcgi進(jìn)程;
quit:平滑終止php的fastcgi進(jìn)程;
restart:重啟php的fastcgi進(jìn)程;
reload:重新加載php的fastcgi進(jìn)程,使進(jìn)程不中斷地加載配置文件;
logrotate:重新啟用log文件;
FastCGI進(jìn)程啟動(dòng)后,可以通過命令“ps”或者“netstat”查看到相關(guān)進(jìn)程信息,默認(rèn)監(jiān)聽9000端口;
netstat -antlp | grep 9000ps -ef | grep php-cgi
Nginx本身不會(huì)對(duì)PHP進(jìn)行解析,要想讓Nginx解析PHP請(qǐng)求,需要將PHP頁(yè)面的請(qǐng)求交給FastCGI進(jìn)程監(jiān)聽的IP地址和端口。Nginx通過反向代理的功能實(shí)現(xiàn)對(duì)PHP的解析。下面對(duì)Nginx解析PHP進(jìn)行配置實(shí)例。
server {
server_name www.ixdba.net ixdba.net;
location / {
index index.html index.php;
root /web/www/www.ixdba.net;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME html$fastcgi_script_name;
include fastcgi_params;
}
}location指令,將以“.php”結(jié)尾的文件都交給“127.0.0.1:9000”來處理,這里的IP和端口就是FastCGI進(jìn)程監(jiān)聽的IP和端口。
fastcgi_param指令,指定放置php動(dòng)態(tài)程序的主目錄,也就是$fastcgi_script_name前的路徑,這里是/usr/local/nginx/html。
fastcgi_params文件是FastCGI進(jìn)程的一個(gè)參數(shù)配置文件,安裝Nginx后默認(rèn)生成,這里將它包含進(jìn)來。
/usr/local/nginx/sbin/nginx
在/usr/local/nginx/html,也就是上面的php動(dòng)態(tài)程序主目錄下,創(chuàng)建一個(gè)phpinfo.php文件,內(nèi)容如下:
<?php phpinfo(); ?>
然后通過瀏覽器訪問http://www.ixdba.net/index.html,將會(huì)顯示Nginx歡迎頁(yè);
瀏覽器訪問http://www.ixdba.net/phpinfo.php,會(huì)出現(xiàn)php安裝及功能列表信息;
添加一些優(yōu)化指令可以讓php環(huán)境高效穩(wěn)定的運(yùn)行,下面給出一些實(shí)例,添加到nginx配置文件的http層級(jí):
為fastcgi緩存指定文件路徑,目錄結(jié)構(gòu)等級(jí)、關(guān)鍵字區(qū)域存儲(chǔ)時(shí)間和非活動(dòng)刪除時(shí)間;
fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=Test:10m inactive=5m;
連接到后端fastcgi的超時(shí)時(shí)間;
fastcgi_connect_timeout 300;
向fastcgi傳送請(qǐng)求的超時(shí)時(shí)間,是已經(jīng)完成兩次握手后向fastcgi傳送請(qǐng)求的超時(shí)時(shí)間;
fastcgi_send_timeout 300;
接收fastcgi應(yīng)答的超時(shí)時(shí)間,是已經(jīng)完成兩次握手后接收fastcgi應(yīng)答的超時(shí)時(shí)間;
fastcgi_read_timeout 300;
讀取fastcgi應(yīng)答第一部分需要緩沖區(qū)的大小;
fastcgi_buffer_size 64k;
本地需要多少和多大的緩沖區(qū)來緩沖fastcgi的應(yīng)答請(qǐng)求;
fastcgi_buffers 4 64k;
默認(rèn)值為fastcgi_buffers的兩倍;
fastcgi_busy_buffers_size 128k;
寫入緩存文件時(shí)使用多大的數(shù)據(jù)塊,默認(rèn)為fastcgi_buffers的兩倍;
fastcgi_temp_file_write_size 128k;
開啟fastcgi緩存并為其指定一個(gè)名稱,可以有效降低cpu負(fù)載,防止502錯(cuò)誤。
fastcgi_cache TEST;
fastcgi_cache_valid指定應(yīng)答代碼的緩存時(shí)間。
將200, 302的應(yīng)答時(shí)間緩存1小時(shí);
fastcgi_cache_valid 200 302 1h;
將301應(yīng)答緩存一天;
fastcgi_cache_valid 301 1d;
其余應(yīng)答緩存1分鐘;
fastcgi_cache_valid any 1m;
一、phpStudy,是一個(gè)新手入門最常用的開發(fā)環(huán)境。二、WampServer,WampServer也同樣的也是和phpStudy一樣操作簡(jiǎn)單對(duì)小白比較友好。三、XAMPP,XAMPP(Apache+MySQL+PHP+PERL)是一個(gè)功能強(qiáng)大的建站集成軟件包;四、MAMP,MAMP分為兩種MAMP和MAMP Pro for Mac。五、寶塔面板,寶塔面板是一款服務(wù)器管理軟件,支持windows和linux系統(tǒng)。六、UPUPW,UPUPW是目前Windows平臺(tái)下最具特色的Web服務(wù)器PHP套件。
以上就是關(guān)于“FastCGI怎么安裝PHP”的內(nèi)容,如果該文章對(duì)您有所幫助并覺得寫得不錯(cuò),勞請(qǐng)分享給您的好友一起學(xué)習(xí)新知識(shí),若想了解更多相關(guān)知識(shí)內(nèi)容,請(qǐng)多多關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當(dāng)前名稱:FastCGI怎么安裝PHP
標(biāo)題來源:http://chinadenli.net/article22/ppchcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計(jì)、營(yíng)銷型網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)