nginx配置php 9000,Nginx支持php配置
Nginx本身是不支持對外部程序的直接調(diào)用或者解析,所有的外部程序(包括PHP)必須通過FastCGI接口來調(diào)用。FastCGI接口在Linux 下是socket,(這個(gè)socket可以是文件socket,也可以是ip socket)。為了調(diào)用CGI程序,還需要一個(gè)FastCGI的wrapper(wrapper可以理解為用于啟動(dòng)另一個(gè)程序的程序),這個(gè) wrapper綁定在某個(gè)固定socket上,如端口或者文件socket。當(dāng)Nginx將CGI請求發(fā)送給這個(gè)socket的時(shí)候,通過FastCGI 接口,wrapper接納到請求,然后派生出一個(gè)新的線程,這個(gè)線程調(diào)用解釋器或者外部程序處理腳本并讀取返回?cái)?shù)據(jù);接著,wrapper再將返回的數(shù)據(jù) 通過FastCGI接口,沿著固定的socket傳遞給Nginx;最后,Nginx將返回的數(shù)據(jù)發(fā)送給客戶端。
Nginx+FastCGI運(yùn)行原理
修改主配置文件,如下:
#?vim/usr/local/nginx/conf/nginx.conf
location?/?{
root???/www;
indexindex.htmlindex.htmindex.php;
}
location?~?\.php$?{
root???????????/www;
fastcgi_pass???127.0.0.1:9000;
fastcgi_index??index.php;
fastcgi_param??SCRIPT_FILENAME??/www$fastcgi_script_name;
include????????fastcgi_params;
}
//注:黑體www為web根目錄,改成對應(yīng)目錄即可
location 定義文件類型, \.php$ 代表所有以 php 作為文件后綴的文件類型.
root 定義 php 文件存放的路徑, 當(dāng)前以 "/www" 作為默認(rèn)存放位置.
fastcgi_index 定義 php 文件類型中的默認(rèn)索引頁
fastcgi_param SCRIPT_FILENAME 定義了頁面請求參數(shù), 如客戶端需要訪問 /t1.php 則會(huì)自動(dòng)讀取 /www/t1.php文件, 如客戶端訪問 / 則自動(dòng)讀取 /www/index.php 文件
include 定義fastcgi 配置信息將會(huì)被保存到 /usr/local/nginx/conf/fastcgi_params 文件中
nginx最常用的方法是利用 tcp/ip 協(xié)議連接 phpfastcgi 接口, 因此要連接php必須先啟動(dòng)fastcgi程序.
啟動(dòng)方法:
# /usr/local/bin/php-cgi-b 127.0.0.1:9000 -c /usr/local/lib/php.ini &
-b 用于指定監(jiān)聽地址與端口
如果想指定配置文件位置,可以使用-c選項(xiàng)
注意, nginx 服務(wù)器負(fù)責(zé)所有的客戶端請求, 包括了靜態(tài)網(wǎng)頁解析 (html), 頁面中的其他對象如 ccs文件jpg png文件等傳輸, 但遇到客戶需要請求 php 頁面請求或 php 源碼解析時(shí), nginx將會(huì)把頁面?zhèn)鬟f到fastcgi接口, 由 php-cgi 程序進(jìn)行解析.
當(dāng)前php-cgi只啟用一個(gè)進(jìn)程應(yīng)答nginx所有連接中的php請求, 假如nginx具有一定的并發(fā)連接,那么php-cgi 將會(huì)變得無法同時(shí)應(yīng)付大量的工作, 并且返回網(wǎng)頁臨時(shí)不可用信息. 將會(huì)導(dǎo)致所有php連接無法返回?cái)?shù)據(jù)結(jié)果,并返回錯(cuò)誤信息。
為有效地解決php-cgi接口無法應(yīng)答大量并發(fā)連接請求, 我們可以利用 spawn-fcgi或者php-fpm,稍后送上。
參考:terry《性能調(diào)優(yōu)和安全》一書
南非螞蟻《高性能Linux服務(wù)器構(gòu)建實(shí)戰(zhàn)》Nginx章節(jié)
總結(jié)
以上是生活随笔為你收集整理的nginx配置php 9000,Nginx支持php配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Proteus仿真:行列式键盘
- 下一篇: php require 500,thin