Akwụkwọ ndekọ ederede
Ị hụtụla ọnọdụ a? Weebụsaịtị gị na-ebelata ngwa ngwa, ma ọ bụ ọbụna tụfuo njehie 500. Ịmaliteghachi PHP-FPM na-eme ka ọ dịghachi mma , mana nsogbu ahụ na-apụta ọzọ mgbe obere oge gasịrị? Ọ na-ewe iwe nke ukwuu!
Gịnị mere nke a ji eme? N'ezie, nke a na- abụkarị n'ihi nhazi usoro PHP-FPM na-ezighi ezi ma ọ bụ enweghị akụrụngwa sava zuru oke . Taa, anyị ga-emeziwanye PHP-FPM nke ọma n'okpuru HestiaCP iji hụ na ebe nrụọrụ weebụ gị kwụsiri ike nke ọma!
Isi ihe kpatara PHP-FPM ji ebufe ibu
PHP-FPM bụ onye njikwa usoro maka PHP , onye nwere ọrụ ijikwa arịrịọ ndị na-agbanwe agbanwe. Nhazi na-ekwesịghị ekwesị nwere ike ibute:
- Ihe nkesa agwụla, na-eme ka PHP-FPM ghara ịzaghachi arịrịọ ọhụrụ n'oge;
- Usoro ole na ole, mgbe okporo ụzọ na-abawanye na mberede, enweghị ike ịhazi ya n'oge;
- Ojiji usoro dị oke oke, na-eme ka ibu CPU gbawaa.

Kedu ka esi ama ma ọ bụrụ na ebufela PHP-FPM?
nwere ike iji top 或 htop Iwu ka ịlele CPU na ojiji ebe nchekwa:
top -c
Ọ bụrụ na ị hụ ozi usoro yiri nke a, ọ pụtara na PHP-FPM na-agba ọsọ n'okpuru nnukwu ibu:
1669293 abc 20 0 790284 227880 185568 R 73.1 0.9 1:30.09 php-fpm: pool chenweiliang.com
1669522 abc 20 0 801924 224224 170236 R 69.9 0.9 0:59.01 php-fpm: pool chenweiliang.com
Ị na-ahụ usoro ndị a site na iji ihe karịrị pasentị iri asaa nke CPU? Ọ bụrụ na nke a na-eme ugboro ugboro, mgbe ahụ enwere ihe na-adịghị mma na PHP-FPM gị!
Yabụ, kedu ka anyị ga-esi bulie nhazi PHP-FPM ka ọ ghara ibufe ihe nkesa?
Nkwalite ọdọ mmiri usoro PHP-FPM (isi ngbanwe parameter)
Mbụ, mepee php-fpm Faịlụ nhazi:
sudo nano /etc/php/*/fpm/pool.d/www.conf- *Gbanwee na ụdị PHP gị, dị ka PHP8.5, wee gbanwee ya ka ọ bụrụ nke a:
/etc/php/8.3/fpm/pool.d/www.conf
Jụọ ụdị PHP nke HestiaCP setịpụrụ
v-list-web-domain user domain.com
Ọmụmaatụ:
v-list-web-domain abc chenweiliang.com
Na mmepụta, ị ga-ahụ ihe dị ka:
PHP SUPPORT yes
PHP MODE php-fpm
PHP VERSION 8.5 Nke a na-egosi na weebụsaịtị ahụ na-eji PHP 8.5.
Ka anyị lelee nhazi PHP-FPM gị:
[chenweiliang.com]
listen = /run/php/php8.5-fpm-chenweiliang.com.sock
listen.owner = abc
listen.group = www-data
listen.mode = 0660
user = abc
group = abc
pm = ondemand
pm.max_children = 8
pm.max_requests = 4000
pm.process_idle_timeout = 10s
Ị nwere ike ịhụ na nke gị pm Nke eji bụ ondemand,Agbanyeghị na ọ nwere ike ibelata ojiji akụrụngwa n'oge enweghị ọrụ, mgbe okporo ụzọ na-abawanye na mberede, usoro ahụ nwere ike ọ gaghị enwe ike ịzaghachi n'oge., na-akpata njehie 500.
www.conf: "Ọdọ mmiri akụrụngwa zuru ụwa ọnụ" nke sistemụ ahụ dị n'ime ya.
Mgbe etinyere PHP-FPM, sistemụ ahụ ga-enye gị... www.conf faịlụ.
Nke yaN'ọnọduỌ dị nnọọ mfe—ọ bụ naanị usoro ndabara nke na-arụ ọrụ n'ime igbe, nke a na-ejikarị... www-data Nbudata onye ọrụ.
Ụdị ọdọ mmiri a dabara adaba karịsịa maka gburugburu ebe otu ebe: nhazi ahụ dị mfe, paramita niile bụkwa ndebiri izugbe, dịka:
user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
pm.max_children = 5
Ọ bụrụ na naanị otu ebe nrụọrụ weebụ ka ị na-akwado, ị nwere ike iji ya ozugbo na ntụkwasị obi na-enweghị nsogbu ọ bụla ọzọ.
etUFO.org.conf: Ọdọ mmiri pụrụ iche
Ozugbo ị na-agba ọtụtụ ebe nrụọrụ weebụ, ị gaghị enwe ike itinye mmadụ niile n'otu ọdọ mmiri.
N'oge a, HestiaCP ga-emepụta ọdọ mmiri dị iche na akpaghị aka maka saịtị ọ bụla, dịka ọmụmaatụ... etUFO.org.confPụrụ iche maka aha ngalaba etufo.org 。
Ụzọ a na-ejikarị egwu egwu bụ:
- Gbanwee ndị ọrụ na otu:
user = etufo,group = etufo - Nlekota onwe onye:
listen = /run/php/etufo.sock - Ịgbanwe ọnụọgụgụ usoro na-eme ka o doo anya na nkume kwụsiri ike ọbụlagodi n'okpuru oke nkwekọrịta.
- Faịlụ ndekọ dị iche iche na-eme ka nsogbu ndị a doo anya.
Uru ya doro anya: ịnọpụ iche n'enweghị nsogbu . Ọ bụrụgodị na otu ebe emebie, ndị ọzọ agaghị emetụta ya.
dummy.conf: faịlụ nzuzu
dummy.conf Ndị a na-abụkarị ihe atụ ma ọ bụ ndebiri nke sistemụ ahụ na-enye.
Ọ gaghị arụ ọrụ n'ezie ma ọ bụrụ na ị gbanwee ma mee ka ọ rụọ ọrụ aka.
Mkpa ya dị ka "akwụkwọ ntuziaka ọrụ," na-agwa gị otu esi ede nhazi ọdọ mmiri ọhụrụ.
Gịnị mere e ji kewaa ọdọ mmiri ahụ?
- 安全 性Jiri ndị ọrụ dị iche iche maka saịtị dị iche iche iji zere ikike ndị na-emegiderịta onwe ha.
- 性能优化Enwere ike ịgbanwe ọnụọgụ nke usoro dị iche iche maka ọdọ mmiri ọ bụla, na-enye ohere maka mgbanwe mgbanwe dabere na mkpa okporo ụzọ.
- Nnọpụ icheE kewapụrụ ndekọ, njehie, na adreesị ige ntị, nke na-eme ka nsogbu dị mfe.
Dịka ọmụmaatụ, ọ bụrụgodị na www.conf ada, etufo.org.conf ka ga na-arụ ọrụ nke ọma ma ọ gaghị emebi sava ahụ dum.
实际场景
- Sava otu saịtị: www.conf ezuola.
- Sava ọtụtụ ebe nrụọrụ weebụEbe nrụọrụ weebụ ọ bụla nwere faịlụ .conf nke ya, dịka etufo.org.conf.
- dummy.confMaka ntụnyere naanị, anaghị atụ aro ya.
Ntụnyere Nhazi
www.conf (ọdọ mmiri ndabara)
[www]
user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
pm = dynamic
pm.max_children = 5
etufo.org.conf (Ọdọ mmiri omenala)
[etufo.org]
user = etufo
group = etufo
listen = /run/php/etufo.sock
pm = dynamic
pm.max_children = 20
access.log = /var/log/php-fpm/etufo.access.log
Isi ihe dị iche bụ: njirimara onye ọrụ, adreesị ige ntị, na ọnụọgụ usoro.
1. Gbanwee PHP-FPM usoro ọdọ mmiri parameters
Ọ bụrụ na nhazi ahụ na-eji dynamicNke a bụ usoro nke ibido ụfọdụ usoro ọrụ ma na-emegharị ha nke ọma dịka olu arịrịọ si dị, nke nwere ike ịza ngwa ngwa mgbe olu arịrịọ na-abawanye na mberede.
Maka weebụsaịtị nwere oke okporo ụzọ, a na-atụ aro ka iji ya pm = dynamicN'ihi na ọ nwere ike idowe ụfọdụ usoro na-abaghị uru ma zere njehie 500 n'oge nnukwu concurrency.
A na-atụ aro ka iji ya naanị mgbe olu nnweta dị oke ala yana akụrụngwa ebe nchekwa siri ike. pm = ondemand Ka ịchekwaa akụrụngwa.
Akwadoro maka dynamic, ma kwalite pm.max_children Na paramita ndị ọzọ:
pm = dynamic
pm.max_children = 16 ; 根据服务器资源调整,建议值:CPU 核心数 × 2
pm.start_servers = 4 ; 初始进程数,建议设为 max_children × 25%
pm.min_spare_servers = 2 ; 最小空闲进程数
pm.max_spare_servers = 7 ; 最大空闲进程数
pm.max_requests = 3000 ; 每个子进程处理完 3000 个请求后自动重启
pm.process_idle_timeout = 10s ; 空闲进程 10s 后自动退出
Gịnị mere i ji chọọ ịgbanwe ya otú a?
pm = dynamic: Kenye usoro n'ụzọ na-agbanwe agbanwe ka ịzenarị arịrịọ echere nke nwere ike bute site na ondemand;pm.max_children = 16: Gbochie njehie 500 mere site na usoro ole na ole;pm.start_servers = 5: Zere mmalite usoro ngwa ngwa;pm.max_requests = 3000:Na-egbochi nkwụsị ebe nchekwa, megharịa usoro ahụ mgbe niile.
2. Machie oge igbu oge nke ederede PHP iji gbochie ogologo oge
request_terminate_timeout = 30s ; 超过 30s 的 PHP 脚本自动终止
php_admin_value[memory_limit] = 128M ; 限制 PHP 进程最大内存占用
Nke a na-egbochi ụfọdụ edemede PHP nke na-eri oke CPU imebi sava ahụ.
Mgbe ịchekwaa, malitegharịa usoro PHP:
sudo systemctl restart php8.3-fpmMee ka PHP-FPM dịkwuo mma dabere na nhazi VPS
Ihe atụ nhazi VPS:
- Nkọwa: VPS 3 NVMe
- Oghere Diski: 300 GB
- Isi CPU: 8
- Ram: 24 GB
Dabere na nhazi VPS gị ( isi CPU asatọ, RAM 24 GB ), akụrụngwa sava gị zuru oke. Maka PHP-FPM, RAM 24 GB na-enye gị ohere ịhazi ọtụtụ usoro n'otu oge.
N'ebe mmepụta ihe, anyị na-ekenyekarị ebe nchekwa zuru oke (dịka 8GB-12GB) maka sistemụ ahụ n'onwe ya, ebe nchekwa data Apache (dịka MySQL /MariaDB), na ebe nchekwa (dịka Redis / Memcached ), na-ahapụ ebe nchekwa 12GB-16GB fọdụrụ ka ekenye ya kpamkpam na PHP-FPM.
Dabere na ojiji ebe nchekwa nkezi nke 40MB-60MB kwa usoro PHP , 1GB nke ebe nchekwa nwere ike ịgba ọsọ ihe dị ka usoro 16-25.
Ihe ndị a bụ nhazi FPM dị elu nke nwere nkwekọrịta dị elu, nke a haziri maka gị , nke nwere ike ime ka ikike WordPress ka mma ma gbochie ya ịda n'ihi mmụba okporo ụzọ mberede:
pm = dynamic
; 允许的最大 PHP 进程数(12GB 内存 / 40MB ≈ 300)
; 8核CPU搭配300个进程,可以轻松应对极高并发,且不至于让内存溢出
pm.max_children = 300
; 启动时创建的初始进程数(CPU核心数 * 4)
pm.start_servers = 32
; 维持的最小空闲进程数(服务器空闲时保留的进程,保证随时响应)
pm.min_spare_servers = 16
; 维持的最大空闲进程数(超过这个数量的空闲进程会被释放)
pm.max_spare_servers = 64
; 每个进程处理1000个请求后自动重启,高配置服务器可适当调大,有效防止WP插件内存泄露
pm.max_requests = 1000
; 单个请求最大执行时间,超时60秒强杀,防止死锁卡死
request_terminate_timeout = 60s
; 慢日志路径及触发阈值(请求超过5秒则记录,用于排查性能瓶颈)
slowlog = /var/log/php8.5-fpm.log.slow
request_slowlog_timeout = 5s
💡 Gịnị kpatara nhazi a?
pm.max_children = 300Nke a bụ isi ihe dị mkpa. Nhazi gị gara aga nke usoro iri ise dị oke mma maka ebe nchekwa 24GB. Mgbe ị na-ahụ mmụba mberede na okporo ụzọ (ma ọ bụ bots na-ejupụta na ndabere), usoro iri ise ga-ejupụta ozugbo, na-akpata oge njikọ. Ịbawanye ya ruo 300 nwere ike ime ka ikike nhazi n'otu oge nke sava gị dịkwuo mma ọtụtụ ugboro.pm.start_servers/ `min_spare_sava_spareEbe ọ bụ na ị nwere isi CPU asatọ, ị nwere ike na mbụ ma na-ejidekarị usoro ndị ọzọ na-abaghị uru, nke na-enye gị ohere iji uru nke multi-core mee ihe ka e wee nwee ike imepe arịrịọ ọhụrụ ozugbo n'echeghị ka e mepụta usoro.pm.max_requests = 1000Mmụba site na 500 ruo 1000. Ebe nchekwa gị buru ibu, ọ dịghịkwa mkpa ịmalitegharị usoro ihe omume ugboro ugboro. Ịbawanye ruo 1000 nwere ike ibelata oriri CPU nke mbibi na mmepụta usoro ugboro ugboro na-akpata.
Lee ndekọ ahụ nwayọ:
tail -f /var/log/php8.5-fpm.log.slowtail -f /var/log/php8.4-fpm.log.slow
Mgbe ịmechara mgbanwe ndị ahụ, cheta ịmalitegharịa ọrụ PHP-FPM ka mgbanwe ndị ahụ wee malite ịrụ ọrụ.
systemctl restart php8.5-fpmKwado nlekota ọnọdụ PHP-FPM ka ịdeba ọganihu n'oge ọ bụla
Inye aka na nlekota usoro PHP-FPM na-enye gị ohere ịhụ ọnụọgụ nke usoro ndị na-arụ ọrụ ma rịọ maka ọnọdụ ichere n'oge ọ bụla , na-egbochi oke ibu nke sava.
Na php-fpm.conf Etinyere na:
pm.status_path = /status
Mgbe ahụ, nhazi Nginx:
location /status {
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
allow 127.0.0.1;
deny all;
}
N'ụzọ dị otú a, ị nwere ike http://yourdomain.com/status Lelee PHP-FPM na-arụ ọrụ!
Bulite ndekọ PHP-FPM iji dozie nsogbu ngwa ngwa
Na php-fpm.conf Gbakwunye na:
php_admin_value[error_log] = /var/log/php-fpm/error.log
php_admin_value[log_errors] = On
php_admin_value[error_reporting] = E_ALL
slowlog = /var/log/php-fpm/slow.log
request_slowlog_timeout = 5s ; 执行超过 5s 的脚本记录到日志
N'ụzọ dị otú a, mgbe ọ bụla njehie 500 mere, ị nwere ike ịlele ndekọ ozugbo:
tail -f /var/log/php-fpm/error.log
Hụ ma PHP na-akọ njehie, dị ka out of memory,script execution timeout 。
Malitegharịa PHP-FPM oge niile iji gbochie ntapu ebe nchekwa
nwee ike ịgafe cron Malitegharịa PHP-FPM oge niile ka ọ ghara ịkpata usoro na-adịte akaNhapu ebe nchekwa.
crontab -e
Tinye ọrụ akwadoro ka ịmalitegharịa PHP-FPM ozugbo n'elekere atọ nke ụtụtụ kwa ụbọchị:
0 3 * * * /usr/sbin/service php8.5-fpm restart
Gịnị ma ọ bụrụ na nsogbu ahụ adịgide? Nkwalite ọzọ!
Ọ bụrụ na ị ka na-enweta njehie 500 mgbe ụfọdụ mgbe ị gbasoro njikarịcha ndị a dị n'elu , ị nwere ike ịga n'ihu na njikarịcha ndị a:
1. Kwado OPcache iji kwalite arụmọrụ PHP
Ọ bụrụ na OPcache emebeghị, ị nwere ike iwunye ya dị ka nke a (iji Ubuntu dịka ọmụmaatụ):
sudo apt install php8.5-opcache -y
Mgbe ahụ dezie php.ini:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.validate_timestamps=0
- opcache.validate_timestamps=0
- Gbanyụọ nchọpụta ozugboBelata I/O sistemụ faịlụ ma melite arụmọrụ.
Agbanyeghị, nke a pụtara na ị ga-eji aka gị hichapụ cache ahụ (maliteghachi ọrụ PHP) mgbe ị gbanwere faịlụ PHP.
Mgbe ị gbanweechara nhazi ahụ, ị ga-amalitegharị ọrụ PHP ka mgbanwe ndị ahụ wee rụọ ọrụ.
sudo systemctl restart php<版本>-fpmMmetụta? Nwelite ọsọ igbu ibe ibe PHP nke ukwuu!
2. Nginx nhazi njikarịcha
Gbaa mbọ hụ na parampat metụtara Nginx nwere ezi uche, dịka fastcgi_read_timeout Gbanwee ya n'ụzọ ziri ezi ka ịzenarị Nginx akwụsị scripts PHP n'ihi ogologo oge igbu oge:
fastcgi_read_timeout 60s;
client_max_body_size 100M;
Nchịkọta: Bulite PHP-FPM na webụsaịtị agaghịzi daa!
Kedu mgbanwe ndị anyị mebere ka emechara nke a?
✅ Na-ebuli ọdọ mmiri usoro PHP-FPM, jiri ondemandMa kwalite pm.max_children oke;
✅ Na-amachi oge igbu oge nke ederede PHP, iji gbochie ọrụ CPU ogologo oge;
✅ Kwado nlekota PHP-FPM, lelee usoro ibu ọrụ ozugbo;
✅ Na-ebuli ndekọ PHP-FPM, ngwa ngwa dozie njehie 500;
✅ Malitegharịa ekwentị PHP-FPM mgbe niile, gbochie nkwụsị ebe nchekwa;
✅ Kwado OPcache, melite PHP arụmọrụ arụmọrụ;
✅ Na-ebuli Nginx Nhazi, ka ịzenarị nsogbu oge.
Mgbe nkwalite a gachara, ibu PHP-FPM ga-ebelata nke ukwuu yana ọrụ webụsaịtị ga-adịkwu mma! 🔥
Gaa nwaa ya ugbu a! 💪🚀
Ọ bụrụ na ị ka nwere mmasị ịmụtakwu gbasara ịhazi ndebiri PHP-FPM na HestiaCP, mgbe ahụ isiokwu a ga-enye gị nghọta miri emi:
👉 Nlereanya PHP-FPM nke HestiaCP ahaziri ahazi: Nzuzo Nhazi arụmọrụ PHP 8.5 ▼
N'ime ọdịnaya a, ị ga-ahụ:
- Usoro nhazi nke ọma maka nkwekọ: Otu esi eme ka ọsọ nzaghachi ka mma site na nhazi usoro ezi uche dị na ya.
- Ngwọta nkewapụ nchekwa: Zere ihe egwu ịnweta ebe niile ma hụ na akaụntụ kwụsiri ike.
- Ndekọ na nlekota: Jiri ndekọ dị nwayọ chọta ihe mgbochi ma na-eme ka arụmọrụ weebụsaịtị ka mma mgbe niile.
Enwere m olileanya na isiokwu a bụ "HestiaCP PHP-FPM Overload? Dynamic Webpage 500 Error? Usoro Nhazi a ga-egosi nsonaazụ ozugbo!" nke e kesara na blọgụ Chen Weiliang ( https://www.chenweiliang.com/ ) ga-abara gị uru.
Nwere onwe gị ịkọrọ njikọ akụkọ a: https://www.chenweiliang.com/cwl-32512.html

