Article Directory
Efa sendra izany toe-javatra izany ve ianao?Nihena tampoka ny fidirana amin'ny tranokala, na niteraka hadisoana 500 aza Rehefa naverina tamin'ny laoniny ny PHP-FPM dia niverina tamin'ny laoniny., fa mipoitra indray ny olana rehefa afaka kelikely? Tena mahasorena izany!
Fa maninona no mitranga izany?Raha ny marina, izany matetikaTsy voarindra araka ny tokony ho izy ny dobo fizotry ny PHP-FPM, na tsy ampy ny loharanon'ny mpizara.vokatry ny. Androany dia hanao optimizer tanteraka isika HestiaCP Ny PHP-FPM eo ambanin'ny saron-tava dia mahatonga ny tranokala ho mafy orina toy ny vatolampy!
Ny antony fototra mahatonga ny PHP-FPM be loatra
PHP-FPM dia aProcess Manager, izay tompon'andraikitra amin'ny fikarakarana ny fangatahana mavitrika. Raha tsy mitombina ny fandrindrana dia mety hitarika amin'ny:
- Lany ny loharanon'ny mpizara, mahatonga ny PHP-FPM tsy afaka mamaly ireo fangatahana vaovao ara-potoana;
- Vitsy loatra ny dingana, rehefa mitombo tampoka ny fifamoivoizana dia tsy azo karakaraina ara-potoana;
- Avo loatra ny fampiasana ny dingana, mahatonga ny enta-mavesatra CPU hipoaka.

Ahoana no ahafantarana raha be loatra ny PHP-FPM?
afaka mampiasa top 或 htop Didy hijery ny fampiasana CPU sy fitadidiana:
top -c
Raha mahita fampahalalana momba ny fizotran'ny dingana mitovy amin'ireto manaraka ireto ianao dia midika izany fa ny PHP-FPM dia mandeha amin'ny enta-mavesatra be:
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
Jereo ny fomba andraisan'ireo dingana ireo ny 70% amin'ny CPU? Raha mitranga matetika izany, ny PHP-FPM anao Tsy maintsy misy olana!
Noho izany, ahoana no ahafahantsika manatsara ny fanamafisana PHP-FPM mba tsy ho be loatra ny mpizara?
Fanamafisana ny dobo PHP-FPM (fanitsiana mari-pamantarana fototra)
Voalohany, sokafy php-fpm Fikirakirana:
sudo nano /etc/php/*/fpm/pool.d/www.conf- *Ovay amin'ny version PHP-nao, toy ny PHP8.3, ary ovay ho toy izao:
/etc/php/8.3/fpm/pool.d/www.conf
Anontanio ny dikan-teny PHP napetrak'i HestiaCP
v-list-web-domain user domain.com
E.g:
v-list-web-domain abc chenweiliang.com
Ao amin'ny output dia hahita zavatra toy izao ianao:
PHP SUPPORT yes
PHP MODE php-fpm
PHP VERSION 8.3
Midika izany fa mampiasa ny tranokala PHP 8.3.
Andeha hojerentsika ny fandrindranao 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
Hitanao fa ny anao pm Ny iray ampiasaina dia ondemand,Na dia mety hampihena ny fampiasana loharanon-karena mandritra ny fotoana tsy miasa aza izany, rehefa mitombo tampoka ny fifamoivoizana, dia mety tsy ho afaka hamaly ara-potoana ny dingana., niteraka fahadisoana 500.
www.conf: Ny "vondron-karena manerantany" efa natsangana ao amin'ny rafitra
Rehefa avy nametraka ny PHP-FPM ny rafitra dia hanome anao ho azy ny... www.conf rakitra.
nytoeranyTsotra dia tsotra ilay izy—fikambanana dingana mahazatra fotsiny izy io izay miasa avy hatrany, matetika mifatotra amin'ny... www-tahirin-kevitra Fisintonana ataon'ny mpampiasa.
Ity karazana dobo ity dia tena mety amin'ny tontolo iainana tokana: maivana ny firafitra, ary ny masontsivana rehetra dia môdely ankapobeny, toy ny:
user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
pm.max_children = 5
Raha tranonkala iray ihany no ampiasainao dia azonao ampiasaina mivantana sy azo itokisana izany tsy misy olana fanampiny.
etOVNI.org.conf: Dobo filomanosana namboarina
Rehefa mitantana tranonkala maromaro ianao dia tsy afaka mitazona ny rehetra ho tafahitsoka ao anaty dobo iray ihany.
Amin'izao fotoana izao, ny HestiaCP dia hamorona ho azy ny dobo misaraka ho an'ny tranonkala tsirairay, ohatra... etOVNI.org.confManokana ho an'ny anaran-tsehatra etufo.org 服务.
Ny fomba filalaovana mahazatra dia:
- Ovay ny mpampiasa sy ny vondrona:
user = etufo,group = etufo - Fanaraha-maso mahaleo tena:
listen = /run/php/etufo.sock - Ny fanitsiana ny isan'ny dingana dia miantoka ny fahamarinan-toerana matanjaka na dia amin'ny fotoana fiaraha-miasa avo aza.
- Ny rakitra log misaraka dia mahatonga ny famahana olana ho mazava kokoa.
Miharihary ny tombontsoa azo avy amin'izany:Fitokana-monina azo antokaNa dia misy tranonkala iray aza voajirika, dia tsy hisy fiantraikany amin'ireo tranonkala hafa izany.
dummy.conf: rakitra dummy
dummy.conf Ireo dia mazàna ohatra na môdely omen'ny rafitra.
Tsy hiasa marina izy io raha tsy ovaina sy alefanao tanana.
Ny dikany dia toy ny "boky torolalana" izay milaza aminao ny fomba fanoratana firafitry ny dobo vaovao.
Nahoana no zaraina ny dobo filomanosana?
- 安全 性Mampiasà mpampiasa samihafa ho an'ny tranonkala samihafa mba hisorohana ny fifanoheran'ny fahazoan-dàlana.
- 性能优化Azo amboarina tsirairay ho an'ny vondrona tsirairay ny isan'ny dingana, ahafahana manitsy azy ireo araka ny filàn'ny fifamoivoizana.
- Fitokana-moninaSarahina avokoa ny logs, ny lesoka ary ny adiresy fihainoana, ka manamora ny famahana olana.
Ohatra: na dia www.conf Nirodana ilay izy.etufo.org.conf Mbola hiasa ara-dalàna ihany izy io ary tsy hampijanona ny mpizara iray manontolo.
实际场景
- Mpizara tranonkala tokana: www.conf dia ampy.
- Mpizara tranonkala maroSamy manana ny rakitra .conf mahaleo tena azy avy ny tranonkala tsirairay, toy ny etufo.org.conf.
- dummy.confHo an'ny fanondroana fotsiny ihany, tsy soso-kevitra.
Fampitahana ny fikirakirana
www.conf (dobo filokana mahazatra)
[www]
user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
pm = dynamic
pm.max_children = 5
etufo.org.conf (Dobo filomanosana namboarina)
[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
Ny fahasamihafana lehibe dia:Ny mombamomba ny mpampiasa, ny adiresy fihainoana, ny isan'ny dingana.
1. Amboary ny masontsivana dobo fizotry ny PHP-FPM
Raha mampiasa ny configuration dynamicIty dia fomba fanombohana mialoha ny fizotran'ny asa sasany ary manitsy azy ireo araka ny haben'ny fangatahana, izay afaka mamaly haingana kokoa rehefa mitombo tampoka ny habetsaky ny fangatahana.
Ho an'ny vohikala misy fifamoivoizan'ny sasany, dia asaina ampiasaina pm = dynamicSatria afaka mitazona dingana tsy misy dikany izy ary misoroka ny fahadisoana 500 mandritra ny fifandonana avo lenta.
Amporisihina ny hampiasa azy io rehefa tena ambany dia ambany ny haavon'ny fidirana ary tery ny fitadidiana. pm = ondemand Mba hamonjy loharanon-karena.
Soso-kevitra ny dynamic, ary optimize pm.max_children Ary paramètre hafa:
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 后自动退出
Nahoana ianao no te hanova azy toy izao?
pm = dynamic: Atokana amin'ny fomba mora kokoa ny fizotrany mba hialana amin'ny fangatahana fiandrasana izay mety ho vokatry ny ondemand;pm.max_children = 16: Misoroka lesoka 500 vokatry ny dingana vitsy loatra;pm.start_servers = 5: Fadio ny manomboka miadana;pm.max_requests = 3000:Fisorohana ny fitadidiana mitete, manodina tsy tapaka ny dingana.
2. Fepetra ny fotoana famonoana ny script PHP mba hisorohana ny fibodoana maharitra
request_terminate_timeout = 30s ; 超过 30s 的 PHP 脚本自动终止
php_admin_value[memory_limit] = 128M ; 限制 PHP 进程最大内存占用
Mety hisoroka ny sasany izanyNy script PHP izay mampiasa CPU be loatra dia mety hampidina ny servero.
Aorian'ny fitehirizana, avereno indray ny dingana PHP:
sudo systemctl restart php8.3-fpmAlefaso ny fanaraha-maso ny sata PHP-FPM hanaraha-maso ny fivoarana amin'ny fotoana rehetra
Alefaso ny fanaraha-maso ny fizotran'ny PHP-FPM ary jereo izany amin'ny fotoana rehetraIsan'ny dingana mavitrika amin'izao fotoana izao sy ny sata miandry miandry, mba hialana amin'ny fanerena be loatra ny mpizara.
In php-fpm.conf Nampiana tao:
pm.status_path = /status
Avy eo, ny konfigurasi 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;
}
Amin'izany fomba izany dia azonao atao http://yourdomain.com/status Jereo ny PHP-FPM miasa!
Amboary ny logs PHP-FPM mba hamahana olana haingana
In php-fpm.conf Hatovana ny:
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 的脚本记录到日志
Amin'izany fomba izany, isaky ny misy hadisoana 500 dia azonao jerena mivantana ny log:
tail -f /var/log/php-fpm/error.log
Jereo raha mitatitra lesoka ny PHP, toy ny out of memory,script execution timeout 等.
Avereno tsy tapaka ny PHP-FPM mba hisorohana ny fiporisan'ny fahatsiarovana
afaka mandalo cron Avereno indray ny PHP-FPM tsy tapaka mba hisorohana ny fizotran'ny fotoana maharitraMemory Leaks.
crontab -e
Ampio ity asa voalahatra manaraka ity hamerenana ho azy PHP-FPM amin'ny 3 ora maraina isan'andro:
0 3 * * * /usr/sbin/service php8.3-fpm restart
Ahoana raha mitohy ny olana? Fanatsarana bebe kokoa!
Raha mbola manaraka ny fanatsarana etsy ambony ianaoMisy fahadisoana 500 indraindray, azonao atao ny manohy ireto fanatsarana manaraka ireto:
1. Alefaso ny OPcache hanatsarana ny fahombiazan'ny famonoana PHP
Raha mbola tsy mandeha ny OPcache dia azonao atao ny mametraka azy toy izao (mampiasa Ubuntu ho ohatra):
sudo apt install php8.3-opcache -y
Avy eo manitsy php.ini:
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
opcache.validate_timestamps=0
- opcache.validate_timestamps=0
- Atsaharo ny fitadiavana amin'ny fotoana tena izyAhena ny fampidirana/famoahana ny rakitra ao amin'ny rafitra ary hatsarao ny fahombiazana.
Na izany aza, midika izany fa tsy maintsy mamafa tanana ny cache ianao (mamerina manomboka ny serivisy PHP) rehefa avy manova ny rakitra PHP.
Rehefa avy nanova ny configuration ianao dia tsy maintsy averinao atomboka ny serivisy PHP mba hampiharana ireo fanovana.
sudo systemctl restart php<版本>-fpmVokatra? Nihatsara be ny hafainganam-pandehan'ny pejy PHP!
2. Optimization ny konfigurasi Nginx
Ataovy azo antoka fa mitombina ny parameter mifandraika amin'ny Nginx, toy ny fastcgi_read_timeout Ampifanaraho amin'ny tokony ho izy izany mba hisorohana ny script PHP atsahatra amin'ny Nginx noho ny fotoana famonoana maharitra:
fastcgi_read_timeout 60s;
client_max_body_size 100M;
Famintinana: Amboary ny PHP-FPM dia tsy hirodana intsony ny tranokala!
Inona no fanitsiana nataontsika taorian'io fanatsarana io?
✅ Fanamafisana ny dobo fizotry ny PHP-FPM, fampiasana ondemandAry optimize pm.max_children parameter;
✅ Famerana ny fotoana famonoana ny script PHP, mba hisorohana ny fibodoana CPU maharitra;
✅ Alefaso ny fanaraha-maso PHP-FPM, jereo ny enta-mavesatra amin'ny fotoana tena izy;
✅ Optimizing PHP-FPM logs, hamaha haingana ny fahadisoana 500;
✅ Avereno indray ny PHP-FPM tsy tapaka, misoroka ny fitadidiana mitete;
✅ Alefaso ny OPcache, manatsara ny fahombiazan'ny famonoana PHP;
✅ Optimizing Nginx Configuration, mba hialana amin'ny olana amin'ny fotoam-potoana.
Aorian'ity fanatsarana ity dia hihena be ny entana PHP-FPM ary hilamina kokoa ny fiasan'ny tranokala! 🔥
Andeha andramo izao! 💪🚀
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) nizara "Ny entana HestiaCP PHP-FPM dia avo loatra? Fahadisoana 500 pejy web dinamika? Hihatra avy hatrany io fanatsarana io! ”, mety hanampy anao izany.
Tongasoa eto mizara ny rohy amin'ity lahatsoratra ity:https://www.chenweiliang.com/cwl-32512.html
