日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php fpm listen.owner,php-fpm配置解释

發(fā)布時(shí)間:2025/3/15 php 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php fpm listen.owner,php-fpm配置解释 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

希望本文所述對(duì)大家的PHP有所幫助。請(qǐng)大家關(guān)注我的其他博客github和csdn

約定幾個(gè)目錄

/usr/local/php/sbin/php-fpm

/usr/local/php/etc/php-fpm.conf

/usr/local/php/etc/php.ini

一,php-fpm的啟動(dòng)參數(shù)

#測(cè)試php-fpm配置

/usr/local/php/sbin/php-fpm -t

/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf -t

#啟動(dòng)php-fpm

/usr/local/php/sbin/php-fpm

/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf

#關(guān)閉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`

二,php-fpm.conf重要參數(shù)詳解

pid = run/php-fpm.pid

#pid設(shè)置,默認(rèn)在安裝目錄中的var/run/php-fpm.pid,建議開啟

error_log = log/php-fpm.log

#錯(cuò)誤日志,默認(rèn)在安裝目錄中的var/log/php-fpm.log

log_level = notice

#錯(cuò)誤級(jí)別. 可用級(jí)別為: alert(必須立即處理), error(錯(cuò)誤情況), warning(警告情況), notice(一般重要信息), debug(調(diào)試信息). 默認(rèn): notice.

emergency_restart_threshold = 60

emergency_restart_interval = 60s

#表示在emergency_restart_interval所設(shè)值內(nèi)出現(xiàn)SIGSEGV或者SIGBUS錯(cuò)誤的php-cgi進(jìn)程數(shù)如果超過 emergency_restart_threshold個(gè),php-fpm就會(huì)優(yōu)雅重啟。這兩個(gè)選項(xiàng)一般保持默認(rèn)值。

process_control_timeout = 0

#設(shè)置子進(jìn)程接受主進(jìn)程復(fù)用信號(hào)的超時(shí)時(shí)間. 可用單位: s(秒), m(分), h(小時(shí)), 或者 d(天) 默認(rèn)單位: s(秒). 默認(rèn)值: 0.

daemonize = yes

#后臺(tái)執(zhí)行fpm,默認(rèn)值為yes,如果為了調(diào)試可以改為no。在FPM中,可以使用不同的設(shè)置來運(yùn)行多個(gè)進(jìn)程池。 這些設(shè)置可以針對(duì)每個(gè)進(jìn)程池單獨(dú)設(shè)置。

listen = 127.0.0.1:9000

#fpm監(jiān)聽端口,即nginx中php處理的地址,一般默認(rèn)值即可。可用格式為: 'ip:port', 'port', '/path/to/unix/socket'. 每個(gè)進(jìn)程池都需要設(shè)置.

listen.backlog = -1

#backlog數(shù),-1表示無限制,由操作系統(tǒng)決定,此行注釋掉就行。backlog含義參考:http://www.3gyou.cc/?p=41

listen.allowed_clients = 127.0.0.1

#允許訪問FastCGI進(jìn)程的IP,設(shè)置any為不限制IP,如果要設(shè)置其他主機(jī)的nginx也能訪問這臺(tái)FPM進(jìn)程,listen處要設(shè)置成本地可被訪問的IP。默認(rèn)值是any。每個(gè)地址是用逗號(hào)分隔. 如果沒有設(shè)置或者為空,則允許任何服務(wù)器請(qǐng)求連接

listen.owner = www

listen.group = www

listen.mode = 0666

#unix socket設(shè)置選項(xiàng),如果使用tcp方式訪問,這里注釋即可。

user = www

group = www

#啟動(dòng)進(jìn)程的帳戶和組

pm = dynamic #對(duì)于專用服務(wù)器,pm可以設(shè)置為static。

#如何控制子進(jìn)程,選項(xiàng)有static和dynamic。如果選擇static,則由pm.max_children指定固定的子進(jìn)程數(shù)。如果選擇dynamic,則由下開參數(shù)決定:

pm.max_children #,子進(jìn)程最大數(shù)

pm.start_servers #,啟動(dòng)時(shí)的進(jìn)程數(shù)

pm.min_spare_servers #,保證空閑進(jìn)程數(shù)最小值,如果空閑進(jìn)程小于此值,則創(chuàng)建新的子進(jìn)程

pm.max_spare_servers #,保證空閑進(jìn)程數(shù)最大值,如果空閑進(jìn)程大于此值,此進(jìn)行清理

pm.max_requests = 1000

#設(shè)置每個(gè)子進(jìn)程重生之前服務(wù)的請(qǐng)求數(shù). 對(duì)于可能存在內(nèi)存泄漏的第三方模塊來說是非常有用的. 如果設(shè)置為 '0' 則一直接受請(qǐng)求. 等同于 PHP_FCGI_MAX_REQUESTS 環(huán)境變量. 默認(rèn)值: 0.

pm.status_path = /status

#FPM狀態(tài)頁面的網(wǎng)址. 如果沒有設(shè)置, 則無法訪問狀態(tài)頁面. 默認(rèn)值: none. munin監(jiān)控會(huì)使用到

ping.path = /ping

#FPM監(jiān)控頁面的ping網(wǎng)址. 如果沒有設(shè)置, 則無法訪問ping頁面. 該頁面用于外部檢測(cè)FPM是否存活并且可以響應(yīng)請(qǐng)求. 請(qǐng)注意必須以斜線開頭 (/)。

ping.response = pong

#用于定義ping請(qǐng)求的返回相應(yīng). 返回為 HTTP 200 的 text/plain 格式文本. 默認(rèn)值: pong.

request_terminate_timeout = 0

#設(shè)置單個(gè)請(qǐng)求的超時(shí)中止時(shí)間. 該選項(xiàng)可能會(huì)對(duì)php.ini設(shè)置中的'max_execution_time'因?yàn)槟承┨厥庠驔]有中止運(yùn)行的腳本有用. 設(shè)置為 '0' 表示 'Off'.當(dāng)經(jīng)常出現(xiàn)502錯(cuò)誤時(shí)可以嘗試更改此選項(xiàng)。

request_slowlog_timeout = 10s

#當(dāng)一個(gè)請(qǐng)求該設(shè)置的超時(shí)時(shí)間后,就會(huì)將對(duì)應(yīng)的PHP調(diào)用堆棧信息完整寫入到慢日志中. 設(shè)置為 '0' 表示 'Off'

slowlog = log/$pool.log.slow

#慢請(qǐng)求的記錄日志,配合request_slowlog_timeout使用

rlimit_files = 1024

#設(shè)置文件打開描述符的rlimit限制. 默認(rèn)值: 系統(tǒng)定義值默認(rèn)可打開句柄是1024,可使用 ulimit -n查看,ulimit -n 2048修改。

rlimit_core = 0

#設(shè)置核心rlimit最大限制值. 可用值: 'unlimited' 、0或者正整數(shù). 默認(rèn)值: 系統(tǒng)定義值.

chroot =

#啟動(dòng)時(shí)的Chroot目錄. 所定義的目錄需要是絕對(duì)路徑. 如果沒有設(shè)置, 則chroot不被使用.

chdir =

#設(shè)置啟動(dòng)目錄,啟動(dòng)時(shí)會(huì)自動(dòng)Chdir到該目錄. 所定義的目錄需要是絕對(duì)路徑. 默認(rèn)值: 當(dāng)前目錄,或者/目錄(chroot時(shí))

catch_workers_output = yes

#重定向運(yùn)行過程中的stdout和stderr到主要的錯(cuò)誤日志文件中. 如果沒有設(shè)置, stdout 和 stderr 將會(huì)根據(jù)FastCGI的規(guī)則被重定向到 /dev/null . 默認(rèn)值: 空.

三,常見錯(cuò)誤及解決辦法整理

1,request_terminate_timeout引起的資源問題

request_terminate_timeout的值如果設(shè)置為0或者過長的時(shí)間,可能會(huì)引起file_get_contents的資源問題。

如果file_get_contents請(qǐng)求的遠(yuǎn)程資源如果反應(yīng)過慢,file_get_contents就會(huì)一直卡在那里不會(huì)超時(shí)。我們知道php.ini 里面max_execution_time 可以設(shè)置 PHP 腳本的最大執(zhí)行時(shí)間,但是,在 php-cgi(php-fpm) 中,該參數(shù)不會(huì)起效。真正能夠控制 PHP 腳本最大執(zhí)行時(shí)間的是 php-fpm.conf 配置文件中的request_terminate_timeout參數(shù)。

request_terminate_timeout默認(rèn)值為 0 秒,也就是說,PHP 腳本會(huì)一直執(zhí)行下去。這樣,當(dāng)所有的 php-cgi 進(jìn)程都卡在 file_get_contents() 函數(shù)時(shí),這臺(tái) Nginx+PHP 的 WebServer 已經(jīng)無法再處理新的 PHP 請(qǐng)求了,Nginx 將給用戶返回“502 Bad Gateway”。修改該參數(shù),設(shè)置一個(gè) PHP 腳本最大執(zhí)行時(shí)間是必要的,但是,治標(biāo)不治本。例如改成 30s,如果發(fā)生 file_get_contents() 獲取網(wǎng)頁內(nèi)容較慢的情況,這就意味著 150 個(gè) php-cgi 進(jìn)程,每秒鐘只能處理 5 個(gè)請(qǐng)求,WebServer 同樣很難避免”502 Bad Gateway”。

解決辦法是request_terminate_timeout設(shè)置為10s或者一個(gè)合理的值,或者給file_get_contents加一個(gè)超時(shí)參數(shù)。

$ctx = stream_context_create(array(

'http' => array(

'timeout' => 10 //設(shè)置一個(gè)超時(shí)時(shí)間,單位為秒

)

));

file_get_contents($str, 0, $ctx);

2,max_requests參數(shù)配置不當(dāng),可能會(huì)引起間歇性502錯(cuò)誤:

pm.max_requests = 1000

設(shè)置每個(gè)子進(jìn)程重生之前服務(wù)的請(qǐng)求數(shù). 對(duì)于可能存在內(nèi)存泄漏的第三方模塊來說是非常有用的. 如果設(shè)置為 ’0′ 則一直接受請(qǐng)求. 等同于 PHP_FCGI_MAX_REQUESTS 環(huán)境變量. 默認(rèn)值: 0.

這段配置的意思是,當(dāng)一個(gè) PHP-CGI 進(jìn)程處理的請(qǐng)求數(shù)累積到 500 個(gè)后,自動(dòng)重啟該進(jìn)程。

但是為什么要重啟進(jìn)程呢?

一般在項(xiàng)目中,我們多多少少都會(huì)用到一些 PHP 的第三方庫,這些第三方庫經(jīng)常存在內(nèi)存泄漏問題,如果不定期重啟 PHP-CGI 進(jìn)程,勢(shì)必造成內(nèi)存使用量不斷增長。因此 PHP-FPM 作為 PHP-CGI 的管理器,提供了這么一項(xiàng)監(jiān)控功能,對(duì)請(qǐng)求達(dá)到指定次數(shù)的 PHP-CGI 進(jìn)程進(jìn)行重啟,保證內(nèi)存使用量不增長。

正是因?yàn)檫@個(gè)機(jī)制,在高并發(fā)的站點(diǎn)中,經(jīng)常導(dǎo)致 502 錯(cuò)誤,我猜測(cè)原因是 PHP-FPM 對(duì)從 NGINX 過來的請(qǐng)求隊(duì)列沒處理好。不過我目前用的還是 PHP 5.3.2,不知道在 PHP 5.3.3 中是否還存在這個(gè)問題。

目前我們的解決方法是,把這個(gè)值盡量設(shè)置大些,盡可能減少 PHP-CGI 重新 SPAWN 的次數(shù),同時(shí)也能提高總體性能。在我們自己實(shí)際的生產(chǎn)環(huán)境中發(fā)現(xiàn),內(nèi)存泄漏并不明顯,因此我們將這個(gè)值設(shè)置得非常大(204800)。大家要根據(jù)自己的實(shí)際情況設(shè)置這個(gè)值,不能盲目地加大。

話說回來,這套機(jī)制目的只為保證 PHP-CGI 不過分地占用內(nèi)存,為何不通過檢測(cè)內(nèi)存的方式來處理呢?我非常認(rèn)同高春輝所說的,通過設(shè)置進(jìn)程的峰值內(nèi)在占用量來重啟 PHP-CGI 進(jìn)程,會(huì)是更好的一個(gè)解決方案。

3,php-fpm的慢日志,debug及異常排查神器:

request_slowlog_timeout設(shè)置一個(gè)超時(shí)的參數(shù),slowlog設(shè)置慢日志的存放位置

tail -f /var/log/www.slow.log

上面的命令即可看到執(zhí)行過慢的php過程。

大家可以看到經(jīng)常出現(xiàn)的網(wǎng)絡(luò)讀取超過、MySQL查詢過慢的問題,根據(jù)提示信息再排查問題就有很明確的方向了。

php-fpm 5.3+ 如何關(guān)閉 重啟?

php 5.3+ 下的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信號(hào)控制:

master進(jìn)程可以理解以下信號(hào)

INT, TERM 立刻終止 QUIT 平滑終止 USR1 重新打開日志文件 USR2 平滑重載所有worker進(jìn)程并重新載入配置和二進(jìn)制模塊

示例:

php-fpm 關(guān)閉:

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

php-fpm 重啟:

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

查看php-fpm進(jìn)程數(shù):

ps aux | grep -c php-fpm

8.命令行下執(zhí)行php,提示找不到命令

-bash: /usr/bin/php: No such file or directory

vi /etc/profile

在文件底部增加一行配置

export PATH=/usr/local/php/bin:$PATH

保存退出

source /etc/profile

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的php fpm listen.owner,php-fpm配置解释的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 岛国裸体写真hd在线 | av动态| 久久网一区二区 | jizz高潮 | 伊人网av| 五月天小说网 | 国产精品无码电影在线观看 | 91欧美日韩国产 | 久热热| av成人精品 | 熟妇高潮精品一区二区三区 | 手机看片1024久久 | 亚洲精品韩国 | 72pao成人国产永久免费视频 | xvideos永久免费入口 | 午夜成人亚洲理伦片在线观看 | 91美女网站 | 丝袜国产在线 | 人成免费在线视频 | 国产精品99re | 免费看片黄色 | 尤物视频在线观看国产性感 | 亚洲爆爽av | 中文第一页 | 欧美绿帽合集videosex | 孕妇爱爱视频 | 国产欧美综合一区 | 国产女主播喷水视频在线观看 | 91麻豆国产在线 | 中文字幕免费播放 | 亚洲精品视频一区 | 先锋影音av资源网 | 老女人一毛片 | 国产婷婷色一区二区在线观看 | 人人免费操 | 成人av视屏 | 国产一级色 | 国产美女永久免费 | 亚洲精品一区二三区不卡 | 亚洲一区二区中文 | 亚洲高清一区二区三区 | 欧美日韩乱 | 男人天堂免费视频 | av电影网站在线观看 | 99re国产 | 五月婷婷综合在线 | 色爽av | japanese中文字幕 | 亚洲快播 | 一级二级在线观看 | 福利午夜视频 | 一区二区日韩在线观看 | 中日韩午夜理伦电影免费 | 久艹在线观看视频 | 日韩国产一级 | 北条麻妃99精品青青久久 | 人妻丰满熟妇av无码区不卡 | 日本黄色美女 | 51国产偷自视频区视频 | 亚洲成人77777 | 国产日产久久高清欧美一区 | 色婷婷在线影院 | 亚洲av综合色区无码一区爱av | 黑人性视频 | 香蕉视频免费在线播放 | 亚洲理论在线 | 韩国三级hd两男一女 | 新97超碰| 天天爽天天做 | 麻豆国产一区 | 好紧好爽再浪一点视频 | 久久青草热 | 欧美高清视频一区二区 | 国产精品熟女久久久久久 | 91视频色| 亚洲最新av网址 | 精品美女视频 | 黄色国产在线观看 | 少妇3p视频 | 欧美午夜小视频 | 亚洲一区二区三区在线视频观看 | 久久久久久久久影院 | 日韩欧美在线看 | 麻豆极品 | 国产一级特黄aaa大片 | 亚洲自拍av在线 | 2019中文字幕在线免费观看 | 538在线精品视频 | 欧洲一区二区视频 | 日本新japanese乱熟 | 韩国无码av片在线观看网站 | 亚欧洲精品视频在线观看 | 久久午夜神器 | 国产伦精品一区二区三区视频女 | 亚洲在线视频一区 | 亚洲福利av | 91精品视频免费在线观看 | 国产精选自拍 | 久久电影一区 |