php 與 nginx 的處理方式及nginx與php_第1頁
php 與 nginx 的處理方式及nginx與php_第2頁
php 與 nginx 的處理方式及nginx與php_第3頁
php 與 nginx 的處理方式及nginx與php_第4頁
php 與 nginx 的處理方式及nginx與php_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第php與nginx的處理方式及nginx與php先給大家介紹下php與nginx的兩種處理方式,具體內(nèi)容如下所示:

1.IP:Port監(jiān)聽方式

php-fpm

dockerpullPHP:2.4-alpine

nginx.conf

fastcgi_pass:9000;

php-fpm在容器里的nginx.conf

location/php

proxy_set_headerHost$host:$server_port;

proxy_pass11:80/;

}

2.UDS方式監(jiān)聽

php-fpm

listen=/tmp/php-fpm.sock

nginx.conf

fastcgi_passunix:/tmp/php-fpm.sock;

3.注意

php-fpm用ip:port方式建立鏈接,

nginx不要用unixsocket方式建立鏈接,用ip:port方式建立連接就行

下面看下nginx與php-fpm通信的兩種方式

在linux中,nginx服務(wù)器和php-fpm可以通過tcpsocket和unixsocket兩種方式實現(xiàn)。

unixsocket是一種終端,可以使同一臺操作系統(tǒng)上的兩個或多個進(jìn)程進(jìn)行數(shù)據(jù)通信。這種方式需要再nginx配置文件中填寫php-fpm的pid文件位置,效率要比tcpsocket高。

tcpsocket的優(yōu)點(diǎn)是可以跨服務(wù)器,當(dāng)nginx和php-fpm不在同一臺機(jī)器上時,只能使用這種方式。

windows系統(tǒng)只能使用tcpsocket的通信方式

配置方法

tcpsocket

tcpsocket通信方式,需要在nginx配置文件中填寫php-fpm運(yùn)行的ip地址和端口號。

location~\.php${

includefastcgi_params;

fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;;

fastcgi_pass:9000;

fastcgi_indexindex.php;

}

unixsocket

unixsocket通信方式,需要在nginx配置文件中填寫php-fpm運(yùn)行的pid文件地址。

location~\.php${

includefastcgi_params;

fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;;

fastcgi_passunix:/var/run/php5-fpm.sock;

fastcgi_indexindex.php;

}

php-fpm的運(yùn)行端口號和socket文件的地址都是在php-fpm.conf中配置的。

php-fpm.conf文件在php安裝文件的/etc目錄下,

比如你的php安裝在/opt/php目錄,則應(yīng)該是/opt/php/php-fpm.conf。

;TheaddressonwhichtoacceptFastCGIrequests.

;Validsyntaxesare:

;'ip.add.re.ss:port'-tolistenonaTCPsockettoaspecificIPv4addresson

;aspecificport;

;'[ip:6:addr:ess]:port'-tolistenonaTCPsockettoaspecificIPv6addresson

;aspecificport;

;'port'-tolistenonaTCPsockettoallIPv4addressesona

;specificport;

;'[::]:port'-tolistenonaTCPsockettoalladdresses

;(IPv6andIPv4-mapped)onaspecificport;

;'/path/to/unix/socket'-tolistenonaunixsocket.

;Note:Thisvalueismandatory.

listen=:9000

listen=/var/run/php-fpm.sock

通過注釋可以看到,php-fpm的listen指令可以通過五種方式處理FastCGI請求,分別是:

1.ipv4:端口號

2.ipv6:端口號

3.port相當(dāng)于:port,本機(jī)所有ipv4對應(yīng)的端口號

4.[::]:port,包括ipv4和ipv6

5.unixsocket文件

直接配置使用unixsocket文件之后,會遇到accessdeny的問題,由于socket文件本質(zhì)上還是一個文件,存在權(quán)限控制問題,默認(rèn)由root用戶創(chuàng)建,因此nginx進(jìn)程無權(quán)限訪問,應(yīng)該配置如下命令:

;Setpermissionsforunixsocket,ifoneisused.InLinux,read/write

;permissionsmustbesetinordertoallowconnectionsfromawebserver.Many

;BSD-derivedsystemsallowconnectionsregardlessofpermissions.

;DefaultValues:userandgrouparesetastherunninguser

;modeissetto0660

listen.owner=www

listen.group=www

listen.mode=0660

可以配置nginx和php-fpm都是用www用戶,這樣就不會存在權(quán)限問題,當(dāng)然也可以創(chuàng)建不同的用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論