PHP-FPM端口是指在使用PHP-FPM作為Web服務(wù)器時(shí),為了實(shí)現(xiàn)PHP進(jìn)程的多進(jìn)程并發(fā)處理以及真正的進(jìn)程池管理,需要使用特定的端口來進(jìn)行區(qū)分的技術(shù)。
簡(jiǎn)單地講,我們可以將PHP-FPM看作是一個(gè)進(jìn)程池管理程序,每一個(gè)PHP進(jìn)程都是在其中被創(chuàng)建和統(tǒng)一管理的,而端口則是指定了PHP進(jìn)程所要使用的網(wǎng)絡(luò)端口,以便與其它程序進(jìn)行交流和通信。
舉個(gè)例子,假設(shè)我們要使用Nginx作為Web服務(wù)器,同時(shí)使用PHP-FPM來處理PHP腳本,那么我們需要在Nginx的配置文件中指定PHP-FPM的IP地址以及端口號(hào)。一般情況下,我們會(huì)將PHP-FPM監(jiān)聽的端口設(shè)置為9000或者是9001等數(shù)字,如下所示:
location ~* \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_param HTTPS $https if_not_empty; }在這段代碼中,我們通過指定“fastcgi_pass 127.0.0.1:9000”來告訴Nginx與哪個(gè)PHP-FPM進(jìn)程進(jìn)行通信,也就是說,PHP-FPM會(huì)監(jiān)聽9000端口并負(fù)責(zé)處理來自Nginx的PHP腳本請(qǐng)求。 同時(shí),我們也可以通過修改PHP-FPM的配置文件來指定監(jiān)聽使用的端口號(hào),例如在PHP-FPM的WWW Pool中,我們可以加入以下代碼:
listen = 127.0.0.1:9000這樣一來,PHP-FPM就會(huì)監(jiān)聽127.0.0.1:9000接口,等待來自Nginx的PHP請(qǐng)求,并啟動(dòng)相應(yīng)的PHP進(jìn)程進(jìn)行處理。 當(dāng)然,我們也可以使用PHP-FPM設(shè)置多個(gè)不同的端口來進(jìn)行并發(fā)處理,以提高PHP腳本的運(yùn)行效率。在上述示例中,我們可以設(shè)置多個(gè)www Pool來監(jiān)聽不同的端口,例如:
[www] listen = 127.0.0.1:9001 listen = 127.0.0.1:9002 listen = 127.0.0.1:9003以上配置表示,PHP-FPM將會(huì)監(jiān)聽3個(gè)不同的端口,同時(shí)創(chuàng)建對(duì)應(yīng)數(shù)量的PHP進(jìn)程進(jìn)行處理,以提高并發(fā)處理性能。 綜上所述,PHP-FPM端口的意義在于為了區(qū)分不同的PHP進(jìn)程并提高Web服務(wù)器的并發(fā)處理效率,我們需要在Nginx或者Apache等Web服務(wù)器中指定相應(yīng)的端口號(hào),并在PHP-FPM的配置文件中進(jìn)行對(duì)應(yīng)的修改。