包含phpfpmuser的詞條

本文目錄一覽:

如何修改 php-fpm的運行用戶?

第一種:一個php-fpm主進程

這種方式比較簡單,也只需要一個php-fpm自啟動文件。

首先我們查看一下原php-fpm.conf的這個配置文件,分為兩個部分,一個是global塊,另外一個是自定義的塊,配置文件裡面稱為pool池,默認叫「www」。在global池的上方,有一行注釋了的「include=etc/fpm.d/*.conf」配置項,再通過www池的配置,我們可知可以通過不同的池來配置不同的用戶,來達到多個用戶運行php-fpm的目的,步驟如下:

4、刪除前面的global塊,或者注釋掉。

5、修改[www]為其他,比如你[blog]。

6、配置[blog]池,主要修改兩個地方:

6.1:第一處為運行的用戶和用戶組。

即將

12user = www3group = www4。

修改為

12user=nobody #具體用哪個用戶視自己情況而定,我只做個示例3group=nobody4。

6.2:修改監聽的埠或者socket:

即將:

12listen = 127.0.0.1:90003。

修改為:

12listen = /var/socket/php-fpm/blog.socket #php-fpm需要自己創建,當然也可以直接放在php-fpm目錄下3。

修改成其他埠也是可以的,比如:listen = 127.0.0.1:9001。

7、到主配置文件 php-fpm.conf將「include=…」前面的注釋去掉,讓它去讀取fpm.d目錄下的配置文件。

8、到此第一種方案就修改完畢了,重新啟動測試一下:

12service php-fpm reload3。

第二種:兩個php-fpm主進程。

這種方法需要獨立的配置文件和獨立的自啟動文件:

1、複製一份php-fpm.conf主配置文件。

12cp php-fpm.conf php-fpm-blog.conf3。

2、修改主配置文件。

12vim php-fpm-blog.conf3。

2.1:修改[global]下pid和error_log文件的路徑。

修改 pid=run/php-fpm.pid 為 pid=run/php-fpm-blog.pid 。

修改 error_log = /log/php-fpm.log 為 error_log = /log/php-fpm-blog.log。

2.2:修改池的名稱[www]為[blog],不過這個可以不用修改了,因為這裡和原來的進程是獨立的。

2.3:修改用戶和用戶組。

2.4:監聽埠或socket文件。

以上兩部可以按照第一種方案進行修改,這裡就不再重複。

3、進入/etc/init.d目錄,複製一份自啟動文件。

12cp php-fpm php-fpm23。

4、修改自啟動文件php-fpm2:

4.1:修改配置文件路徑。

12php_fpm-CONF=${prefix}/etc/php-fpm.conf3。

12php_fpm-CONF=${prefix}/etc/php-fpm-blog.conf3。

這個路徑就是剛才的主配置文件。

4.2:修改PID文件路徑:

12php_fpm_PID=${prefix}/var/run/php-fpm.pid3。

為:

12php_fpm_PID=${prefix}/var/run/php-fpm-blog.pid3。

這個路徑要和主配置文件中的pid路徑一致。

5、修改完畢後添加自動啟動。

12chkconfig –add php-fpm23chkconfig –level 2345 php-fpm2 on4。

6、啟動服務。

啟動php-fpm時是怎麼載入php.ini

php.ini:決定php語言運行的環境,支持擴展的模塊,開發環境的配置

php-fpm.conf:進程式控制制管理器配置文件,控制php-cgi的進程數,常駐內存,提高web服務的響應速率,php-cgi運行時會載入這兩個配置文件。

PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。

它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標準通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。

php-fpm 找不到 php-cgi.sock 怎麼辦

php-fpm有兩種listen方式,一種是通過埠來操作,一種是sock文件。

在nginx的server配置當中,如果設置為fastcgi_pass unix:/tmp/php-cgi.sock的話,有可能會出現502錯誤,這是以為nginx此項沒有找到php-cgi.sock文件或者許可權問題導致的,我們也可以改成fastcgi_pass:127.0.0.1:9000來修正這個錯誤 。

當我們用php-fpm來管理我們的php啟動時,按照如下的配置,就會自動生成/tmp/php-cgi.sock文件,然後再訪問的話就不回出現502 Gateway錯誤了。配置如下:

[global]

pid = /var/run/php-fpm.pid

error_log = /var/log/php-fpm.log

log_level = notice

[www]

listen = /tmp/php-cgi.sock

user = www

group = www

pm = dynamic

pm.max_children = 20

pm.start_servers = 2

pm.min_spare_servers = 1

pm.max_spare_servers = 3

註:將php.ini里的cgi.fix_pathinfo設置為0,不然會有漏洞~如過還有不懂的,你可以在後盾人,看看教材自己學習一下,有空多看看,就明白了,希望能幫到你,給個採納吧

在編譯 php 時,為了使用 php 內置的 fpm 功能,應該使用什麼參數

php5.3.3以後源碼中已經內嵌了php-fpm,不用象以前的php版本一樣專門打補丁了,只需要在configure的時候添加編譯參數即可。關於php-fpm的編譯參數有–enable-fpm–with-fpm-user=www–with-fpm-group=www–with-libevent-dir=libevent位置。但是,php5.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,就沒有這個文件。可以用psaux|grepphp-fpm,使用第一個進程的進程號,測試可行。

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
BZFV的頭像BZFV
上一篇 2024-10-04 00:15
下一篇 2024-10-04 00:15

相關推薦

發表回復

登錄後才能評論