phpfpm怎麼啟動,phpfpm

本文目錄一覽:

如何啟動brew的php-fpm

Nginx是個輕量級的HTTP server,必須藉助第三方的FastCGI處理器才可以對PHP進行解析,PHP-FPM也是一個第三方的FastCGI進程管理器。

linux中啟動

service php-fpm start 啟動

service php-fpm restart 重啟

php5.4.6怎樣重啟php-fpm

php5.4中php-fpm怎麼重啟?

php 5.3.3以後 源碼中已經內嵌了 php-fpm,不用象以前的php版本一樣專門打補丁了,只需要在configure的時候添加編譯參數即可。

關於php-fpm的編譯參數有 –enable-fpm –with-fpm-user=www –with-fpm-group=www –with-libevent-dir=libevent位置。

但是,php 5.3.3以後 的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信號控制:

master進程可以理解以下信號:

INT, TERM 立刻終止

QUIT 平滑終止

USR1 重新打開日誌文件

USR2 平滑重載所有worker進程並重新載入配置和二進位模塊

有了以上信號,php-fpm進程重啟就方便多了。

例子:

php-fpm 關閉:

代碼示例:

kill -INT `cat /usr/local/php/var/run/php-fpm.pid`

php-fpm 重啟:

代碼示例:

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

說明:

cat部分是php-fpm的進程號,可能是我用的5.4的問題。沒有用php-fpm.pid ,就沒有這個文件。

可以用 ps aux | grep php-fpm,使用第一個進程的進程號,測試可行。

如何設置開機啟動php pfm

Linux的話可以在rc.local添加開機啟動php-fpm的命令,rc.local文件存在/etc目錄下也有可能存在於/etc/init.d目錄下,以下假設它在/etc目錄下:

echo service php-fpm start /etc/rc.local

docker php-fpm 怎樣啟動

需要保證:Nginx看到的路徑要和php-fpm看到的路徑一樣。 因為Nginx是把路徑傳給php-fpm的。

曾跳過該坑,出坑方法:找到你的php-fpm.conf,查看裡面配置的error_log路徑,找到這個error_log, 裡面會看到找不到.php的error.

了解PHP-FPM

在伺服器上,當我們查看php進程時,全都是php-fpm進程,大家都知道這個就是php的運行環境,那麼,它到底是個什麼東西呢?

PHP-FPM,就是PHP的FastCGI管理器,用於替換PHP FastCGI的大部分附加功能,在PHP5.3.3後已經成為了PHP的標配。

有小夥伴要問了,FastCGI又是什麼鬼?CGI程序又叫做「通用網關介面」,就是讓Web伺服器和你的應用程序進行交互的一個介面。就像nginx中需要配置的fastcgi_pass,一般我們會使用127.0.0.1:9000或者unix:/tmp/php-cgi.sock來配置這個參數。它的意思就是告訴nginx,過來的請求使用tcp:9000埠的監聽程序來處理或者使用unix/socket來處理。它們都是指向的PHP運行程序。

再說得通俗一點,我們運行php腳本用的是

php-fpm就相當於是這個php命令。nginx通過fastcgi_pass來運行php $nginx_root(nginx配置文件中網站根目錄root配置)下的index.php。所以,如果你用的是python或者其他什麼語言,都可以用它們的cgi程序來讓nginx調用。

FastCGI和CGI又有什麼不同呢?FastCGI是啟動一個socket介面,伺服器應用不需要自己去運行php,只需要向這個socket介面提交請求就可以了。

php-fpm在編譯php時需要添加–enable-fpm。一些通用的集成安裝包如lnmp、phpStudy等都會默認編譯並使用php-fpm,畢竟是標配。

上文中說過nginx可以使用127.0.0.1:9000和unix:/tmp/php-cgi.sock這兩種方式來調用php-fpm。它們有什麼區別呢?

前者,一般帶9000埠號的,是tcp形式的調用。也就是php-fpm啟動了一個監聽進程對9000埠進行監聽。它會調起一個tcp/ip服務,nginx在調用的時候會走一次tcp請求流程,也就是3次握手4次揮手,會走到網路七層中的第四層傳輸層。相對來說這種方式性能會稍差一點,啟動php-fpm後使用nestat查看埠中會出現9000埠的佔用。

後者,使用的是unix套接字socket服務,通過sock文件來交換信息,性能相對好一些,因為它沒有tcp連接過程,也不會有9000埠的佔用。

對於高負載大訪問量的網站還是推薦使用unix方式,對於普通小網站來說,無所謂使用哪個都可以,tcp方式反而更容易配置和理解,也是php-fpm.conf中默認的監聽方式。

php-fpm.conf配置中的listen屬性用來配置監聽,這裡的配置要和nginx中的一致,使用tcp的就監聽127.0.0.1:9000,使用unix的就設置成/tmp/php-cgi-56.sock。

以下內容摘自官方文檔:

===========

各自媒體平台均可搜索【硬核項目經理】

原創文章,作者:AHJJ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/144269.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
AHJJ的頭像AHJJ
上一篇 2024-10-24 15:28
下一篇 2024-10-24 15:28

相關推薦

發表回復

登錄後才能評論