Uhla lwemibhalo ye-athikili
Wake wabhekana nalesi simo?Ukufinyelela kwewebhusayithi kwehle ngokuzumayo, noma kwaze kwaholela ephutheni le-500 Ngemva kokuqalisa kabusha i-PHP-FPM, ibuyele kokujwayelekile., kodwa inkinga iphinde ivele ngemva kwesikhashana? Kuyakhungathekisa kakhulu lokhu!
Kungani lokhu kwenzeka?Eqinisweni, lokhu ngokuvamileIchibi lenqubo ye-PHP-FPM ayilungiswanga kahle, noma izinsiza zeseva azanele.okubangelwa. Namuhla, sizothuthukisa ngokuphelele I-HestiaCP I-PHP-FPM efakiwe yenza iwebhusayithi izinze njengetshe!
Isizathu esiyinhloko sokuthi kungani i-PHP-FPM igcwele ngokweqile
I-PHP-FPM iyi-aUmphathi Wenqubo, enesibopho sokusingatha izicelo eziguqukayo. Uma ukucushwa kungenangqondo, kungaholela kokuthi:
- Izinsiza zeseva ziphelile, okubangela ukuthi i-PHP-FPM ingakwazi ukuphendula izicelo ezintsha ngesikhathi;
- Izinqubo ezimbalwa kakhulu, lapho ithrafikhi inyuka ngokuzumayo, ayikwazi ukucutshungulwa ngesikhathi;
- Ukusetshenziswa kwenqubo kuphezulu kakhulu, okwenza umthwalo we-CPU uqhume.

Ungasho kanjani ukuthi i-PHP-FPM igcwele kakhulu?
angasebenzisa top Noma htop Umyalo wokubuka i-CPU nokusetshenziswa kwememori:
top -c
Uma ubona imininingwane yenqubo efana nokulandelayo, kusho ukuthi i-PHP-FPM isebenza ngaphansi komthwalo omkhulu:
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
Bona ukuthi lezi zinqubo zithatha kanjani ngaphezu kuka-70% we-CPU? Uma lokhu kwenzeka kaningi, i-PHP-FPM yakho Kumele kube nenkinga!
Ngakho-ke, singakuthuthukisa kanjani ukucushwa kwe-PHP-FPM ukuze iseva ingasalayishiwe?
Inqubo ye-PHP-FPM ye-pool optimization (ukulungiswa kwepharamitha okuyisisekelo)
Okokuqala, vula php-fpm Amafayela Okulungiselela:
sudo nano /etc/php/*/fpm/pool.d/www.conf- *Shintshela enguqulweni yakho ye-PHP, njenge-PHP8.3, futhi uyiguqule ibe yilena:
/etc/php/8.3/fpm/pool.d/www.conf
Buza inguqulo ye-PHP esethwe yi-HestiaCP
v-list-web-domain user domain.com
I-E.g:
v-list-web-domain abc chenweiliang.com
Kokukhiphayo, uzobona okufana nalokhu:
PHP SUPPORT yes
PHP MODE php-fpm
PHP VERSION 8.3
Lokhu kusho ukuthi iwebhusayithi isebenzisa I-PHP 8.3,
Ake sibheke ukucushwa kwakho kwe-PHP-FPM:
[chenweiliang.com]
listen = /run/php/php8.3-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
Uyakubona lokho pm Osetshenziswayo ngu ondemand,Nakuba inganciphisa ukusetshenziswa kwensiza ngesikhathi sokungenzi lutho, lapho ithrafikhi inyuka ngokuzumayo, inqubo ingase ingakwazi ukuphendula ngesikhathi., okuholela emaphutheni angu-500.
www.conf: "Ichibi lezinsiza elibanzi" elakhelwe ngaphakathi ohlelweni
Ngemva kokufaka i-PHP-FPM, uhlelo luzokunikeza ngokuzenzakalelayo... www.conf idokhumenti.
YakhoUkubekaKulula kakhulu—kumane kuyichibi lenqubo elizenzakalelayo elisebenza ngokushelela, ngokuvamile elinamathiselwe ku... www-data Ukulanda komsebenzisi.
Lolu hlobo lwechibi lufaneleka kakhulu ezindaweni ezinendawo eyodwa: ukucushwa kulula, futhi amapharamitha wonke ayizifanekiso ezijwayelekile, njenge:
user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
pm.max_children = 5
Uma ubamba isayithi elilodwa kuphela, ungalisebenzisa ngokuqondile nangokuthembekile ngaphandle kokuhlupheka okwengeziwe.
etufo.org.conf: Ichibi elenziwe ngokwezifiso
Uma ususebenzisa amasayithi amaningi, awukwazi ukugcina wonke umuntu egcwele echibini elifanayo.
Kuleli qophelo, i-HestiaCP izodala ngokuzenzakalelayo ichibi elihlukile lesayithi ngalinye, isibonelo... etufo.org.confOkukhethekile ngamagama esizinda etufo.org 服务。
Indlela evamile yokudlala yile:
- Shintsha abasebenzisi namaqembu:
user = etufo,group = etufo - Ukuqapha okuzimele:
listen = /run/php/etufo.sock - Ukulungisa inani lezinqubo kuqinisekisa ukuzinza okuqinile ngisho nangaphansi kwesilinganiso esiphezulu semali.
- Amafayela elogi ahlukene enza ukuxazulula izinkinga kube lula.
Izinzuzo zisobala:Ukuzihlukanisa okuphephileNgisho noma isayithi elilodwa lisengozini, amanye amasayithi azohlala engathintekile.
i-dummy.conf: ifayela le-dummy
i-dummy.conf Lezi ngokuvamile ziyizibonelo noma amathempulethi anikezwa uhlelo.
Ngeke isebenze ngaphandle kokuthi uyishintshe ngesandla futhi uyinike amandla.
Ukubaluleka kwayo kufana kakhulu "nencwadi yokusebenza," ekutshela ukuthi ungabhala kanjani ukucushwa kwechibi elisha.
Kungani kuhlukaniswa ichibi?
- 安全 性Sebenzisa abasebenzisi abahlukene kumasayithi ahlukene ukuze ugweme izimvume ezingqubuzanayo.
- 性能优化Inani lezinqubo lingalungiswa ngalinye echibini ngalinye, okuvumela ukulungiswa okuguquguqukayo ngokusekelwe ekudingweni kwethrafikhi.
- UkuzihlukanisaAmalogi, amaphutha, kanye namakheli okulalela konke kuhlukanisiwe, okwenza ukuxazulula izinkinga kube lula.
Isibonelo: ngisho www.conf Yadilika.etufo.org.conf Izoqhubeka isebenza ngendlela evamile futhi ngeke yehlise yonke iseva.
实际场景
- Iseva yesayithi elilodwa: I-www.conf yanele.
- Iseva yamasayithi amaningiIsayithi ngalinye linefayela lalo elizimele le-.conf, njenge-etufo.org.conf.
- i-dummy.confAkukhuthazwa ukubhekisela kuphela.
Ukuqhathaniswa Kokucushwa
www.conf (ichibi elizenzakalelayo)
[www]
user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
pm = dynamic
pm.max_children = 5
etufo.org.conf (Ichibi elenziwe ngokwezifiso)
[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
Umehluko omkhulu uwukuthi:Ubunikazi bomsebenzisi, ikheli lokulalela, inani lezinqubo,
1. Lungisa amapharamitha echibi lenqubo ye-PHP-FPM
Uma ukucushwa kusebenzisa dynamicLena indlela yokuqala izinqubo ezithile zomsebenzi futhi uzilungise ngokuguquguqukayo ngokuya ngevolumu yesicelo, engaphendula ngokushesha lapho ivolumu yesicelo ikhuphuka ngokuzumayo.
Kumawebhusayithi anenani elithile lethrafikhi, kuyanconywa ukuthi asetshenziswe pm = dynamicNgoba ingagcina inani elithile lezinqubo ezingenzi lutho futhi igweme amaphutha angama-500 ngesikhathi sokuvumelana okuphezulu.
Kunconywa ukuthi uyisebenzise kuphela uma ivolumu yokufinyelela iphansi kakhulu futhi izinsiza zememori ziqinile. pm = ondemand Ukonga izinsiza.
Kuphakanyiswe ukuthi dynamic, futhi ulungiselele pm.max_children Namanye amapharamitha:
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 后自动退出
Kungani ufuna ukuyishintsha kanje?
pm = dynamic: Nikeza izinqubo ngendlela evumelana nezimo ukuze ugweme ukulinda okungase kubangelwe ukufunwa;pm.max_children = 16: Vimbela amaphutha angu-500 abangelwa izinqubo ezimbalwa kakhulu;pm.start_servers = 5: Gwema ukuqalisa inqubo enensa;pm.max_requests = 3000:Ukuvimbela ukuvuza kwenkumbulo, sebenzisa kabusha inqubo njalo.
2. Khawulela isikhathi sokwenziwa kwemibhalo ye-PHP ukuze uvimbele ukuhlala isikhathi eside
request_terminate_timeout = 30s ; 超过 30s 的 PHP 脚本自动终止
php_admin_value[memory_limit] = 128M ; 限制 PHP 进程最大内存占用
Lokhu kungavimbela abanyeIzikripthi ze-PHP ezisebenzisa i-CPU eningi zingehlisa iseva yakho,
Ngemva kokulondoloza, qala kabusha inqubo ye-PHP:
sudo systemctl restart php8.3-fpmNika amandla ukuqapha isimo se-PHP-FPM ukuze ulandelele ukuqhubeka noma kunini
Nika amandla ukuqapha kwenqubo ye-PHP-FPM futhi uyibuke noma kuniniInombolo yamanje yezinqubo ezisebenzayo kanye nokucela isimo sokulinda, ukugwema ukugcwala kweseva.
KW php-fpm.conf Kwengezwe ku:
pm.status_path = /status
Bese, ukucushwa kwe-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;
}
Ngale ndlela, ungakwazi http://yourdomain.com/status Bheka i-PHP-FPM isebenza!
Lungiselela amalogi we-PHP-FPM ukuze uxazulule izinkinga ngokushesha
KW php-fpm.conf Engeza ku:
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 的脚本记录到日志
Ngale ndlela, noma nini lapho kwenzeka iphutha le-500, ungabuka ngokuqondile ilogi:
tail -f /var/log/php-fpm/error.log
Bona ukuthi i-PHP ibika iphutha, njenge out of memory,script execution timeout Linda.
Qala kabusha i-PHP-FPM njalo ukuze uvimbele ukuvuza kwememori
ukwazi ukudlula cron Qala kabusha i-PHP-FPM njalo ukuze uvimbele izinqubo ezisebenza isikhathi eside ukuthi zingabangeliUkuvuza Kwenkumbulo,
crontab -e
Engeza umsebenzi ohleliwe olandelayo ukuze uqale kabusha ngokuzenzakalelayo i-PHP-FPM ngo-3 ekuseni nsuku zonke:
0 3 * * * /usr/sbin/service php8.3-fpm restart
Kuthiwani uma inkinga iqhubeka? Ukwenza ngcono okwengeziwe!
Uma usalandela ukulungiselelwa okungenhlaNgezinye izikhathi kwenzeka amaphutha angu-500, ungaqhubeka nokulungiselelwa okulandelayo:
1. Nika amandla i-OPcache ukuze uthuthukise ukusebenza kahle kwe-PHP
Uma i-OPcache ingakanikwa amandla okwamanje, ungayifaka kanje (usebenzisa Ubuntu njengesibonelo):
sudo apt install php8.3-opcache -y
bese uhlela php.ini:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.validate_timestamps=1
Umthelela? Isivinini sokwenza ikhasi le-PHP sithuthukiswe kakhulu!
2. Ukulungiswa kwe-Nginx
Qinisekisa ukuthi amapharamitha ahlobene ne-Nginx anengqondo, njenge fastcgi_read_timeout Yilungise ngendlela efanele ukuze ugweme ukuthi imibhalo ye-PHP iqedwe yi-Nginx ngenxa yesikhathi eside sokwenza:
fastcgi_read_timeout 60s;
client_max_body_size 100M;
Isifinyezo: Lungiselela i-PHP-FPM futhi iwebhusayithi ngeke isaphahlazeka!
Yiziphi izinguquko esizenzile ngemva kwalokhu kulungiselelwa?
✅ Ukulungiselela iphuli yenqubo ye-PHP-FPM,sebenzisa ondemandFuthi uthuthukise pm.max_children ipharamitha;
✅ Ikhawulela isikhathi sokwenziwa kwezikripthi ze-PHP, ukuvimbela umsebenzi we-CPU wesikhathi eside;
✅ Nika amandla ukuqapha kwe-PHP-FPM, buka umthwalo wenqubo ngesikhathi sangempela;
✅ Ukulungiselela izingodo ze-PHP-FPM, xazulula ngokushesha amaphutha angama-500;
✅ Qala kabusha i-PHP-FPM njalo, vimbela ukuvuza kwenkumbulo;
✅ Nika amandla i-OPcache, thuthukisa ukusebenza kahle kwe-PHP;
✅ Ilungiselela Ukucushwa kwe-Nginx, ukugwema izinkinga zokuvala isikhathi.
Ngemuva kwalokhu kulungiselelwa, umthwalo we-PHP-FPM uzoncishiswa kakhulu futhi ukusebenza kwewebhusayithi kuzozinza kakhulu! 🔥
Hamba uyizame manje! 💪🚀
I-Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) wabelane ngokuthi "Umthwalo we-HestiaCP PHP-FPM uphezulu kakhulu? Iphutha lewebhu le-Dynamic 500? Lokhu kulungiselelwa kuzoqala ukusebenza ngokushesha! ”, kungase kube usizo kuwe.
Siyakwamukela ukwabelana ngesixhumanisi salesi sihloko:https://www.chenweiliang.com/cwl-32512.html
