Sitwazzjoni attwali: PHP2Shell. Żewġ vulnerabbiltajiet kritiċi ta' PHP (CVSS 9,2) jippermettu kodiċi malizzjuż mingħajr login. Patches mill-21/10/2026.X'għandu jsir issa →

PHP-FPM spjegat: maniġer tal-proċessi, pools u workers

PHP-FPM iħaddem PHP bħala servizz proprju b'pools u workers. Hekk jaħdem il-mudell tal-proċessi, liema direttivi jgħoddu u għaliex il-workers iridu jerġgħu jinbdew wara aġġornamenti.

Stat 5 min. qariGħarfien dwar PHP

Fil-qosor: PHP-FPM (FastCGI Process Manager) iħaddem PHP bħala servizz proprju maġenb is-server tal-web. Proċess master jamministra pools, u kull pool jibda workers li jipproċessaw it-talbiet permezz ta' FastCGI. Il-pools jistgħu jitħaddmu għal kull websajt b'utent proprju, limiti proprji u settings ta' PHP imsakkra. Peress li l-workers jipproċessaw ħafna talbiet wieħed wara l-ieħor, wara aġġornament ta' PHP iridu jerġgħu jinbdew kollha.

X'inhu PHP-FPM?

Il-manwal ta' PHP jiddeskrivi lil FPM bħala l-implimentazzjoni primarja ta' FastCGI ta' PHP b'funzjonijiet utli fuq kollox għal websajts taħt tagħbija qawwija. FPM ġie inkluż ma' PHP 5.3.3 bħala SAPI separata, jiġifieri bħala modalità tat-tħaddim separata. L-isem tal-SAPI tagħha huwa fpm-fcgi.

Id-differenza minn mod_php: PHP ma taħdimx fis-server tal-web, imma bħala servizz proprju. Nginx, Apache jew server tal-web ieħor jgħaddi t-talbiet ta' PHP permezz tal-protokoll FastCGI u jirċievi lura t-tweġiba lesta. Is-server tal-web u PHP b'hekk jistgħu jerġgħu jinbdew, jiġu kkonfigurati u assigurati indipendentement minn xulxin. Kif taħdem FastCGI bħala prinċipju jinsab taħt CGI u FastCGI.

Master, pools u workers: il-mudell tal-proċessi

PHP-FPM jikkonsisti minn tliet livelli:

  1. Proċess master: jaqra l-konfigurazzjoni, jiftaħ is-sockets u jibda jew itemm workers. Hu stess ma jesegwixxi ebda kodiċi tal-applikazzjoni.
  2. Pools: Kull pool għandu isem, socket jew port proprju, utent Unix proprju u settings proprji ta' PHP. Il-manwal isemmi espliċitament uid, gid, chroot, ambjent u php.ini differenti għal kull pool.
  3. Workers: proċessi ta' pool li jaċċettaw u jesegwixxu t-talbiet. Worker jipproċessa ħafna talbiet wieħed wara l-ieħor qabel ma jiġi sostitwit.

Kemm jaħdmu workers jiddetermina l-maniġer tal-proċessi bid-direttiva pm:

Modalità Aġir Direttivi importanti
static għadd fiss ta' workers pm.max_children
dynamic workers bejn limitu minimu u limitu massimu pm.start_servers, pm.min_spare_servers, pm.max_spare_servers
ondemand workers biss meta jkun hemm bżonn, jitneħħew wara perjodu mingħajr attività pm.process_idle_timeout (standard 10s)

pm.max_children jillimita fil-modalitajiet kollha l-għadd ta' talbiet simultanji. pm.max_requests jissostitwixxi worker wara għadd fiss ta' talbiet; l-istandard 0 ifisser bla limitu.

Liema modalità taqbel jiddependi mit-tagħbija. static iżomm dejjem l-istess għadd ta' workers lesti u taqbel għal applikazzjonijiet użati b'mod uniformi u qawwi b'biżżejjed RAM. dynamic hija kompromess għall-biċċa l-kbira tal-websajts. ondemand tiffranka memorja fuq servers b'ħafna websajts żgħar, għax pools mingħajr viżitaturi ma jokkupaw ebda worker; minflok, l-ewwel talba wara waqfa tieħu ftit aktar żmien. pm.max_children issettjat għoli wisq jista' jwassal lis-server għal nuqqas ta' memorja fil-quċċijiet tat-tagħbija, wieħed baxx wisq iwassal għal żminijiet ta' stennija u messaġġi ta' żball tas-server tal-web.

Pool b'settings bażiċi siguri

Eżempju ta' pool proprju għal kull websajt, b'direttivi mill-manwal ta' PHP. Il-mogħdijiet u l-valuri huma eżempji:

; /etc/php/8.3/fpm/pool.d/kunde-a.conf
[kunde-a]
user = kunde-a
group = kunde-a

listen = /run/php/kunde-a.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

pm = ondemand
pm.max_children = 10
pm.process_idle_timeout = 10s

request_terminate_timeout = 60s
security.limit_extensions = .php
clear_env = yes

php_admin_value[open_basedir] = /var/www/kunde-a:/tmp
php_admin_flag[session.upload_progress.enabled] = off
php_admin_value[error_log] = /var/log/php/kunde-a.error.log

Skont il-manwal, valuri permezz ta' php_value u php_flag jistgħu jinbidlu waqt it-tħaddim b'ini_set(), valuri permezz ta' php_admin_value u php_admin_flag le. security.limit_extensions huwa b'mod predefinit .php .phar u jistabbilixxi liema estensjonijiet tal-fajls FPM jesegwixxi bħala skrip ewlieni. clear_env = yes huwa l-istandard u jbattal l-ambjent tal-workers.

Għas-sorveljanza hemm paġna tal-istatus permezz ta' pm.status_path u paġna ping permezz ta' ping.path. It-tnejn għandhom jintlaħqu biss internament. FPM jirreġistra t-talbiet bil-mod b'backtrace meta jiġu ssettjati request_slowlog_timeout u slowlog.

Importanti

Il-manwal ta' PHP iwissi: min jista' jiftaħ konnessjoni FastCGI ma' PHP-FPM jikkontrolla l-konfigurazzjoni tat-talba u b'hekk jista' jesegwixxi kodiċi arbitrarju. PHP-FPM ma għandu qatt ikun jintlaħaq minn xibka mhux fdata. Użaw Unix socket jew listen.allowed_clients.

X'rwol għandha PHP-FPM ma' PHP2Shell?

PHP-FPM hija fost il-modalitajiet tat-tħaddim affettwati. Il-mudell tal-proċessi jidher b'mod speċjali ma' CVE-2026-109619: stat intern li jappartjeni lit-talba jista' jibqa' wara li l-memorja tinħeles, u talba aktar tard fl-istess worker tista' tużah qabel ma jerġa' jiġi ssettjat. Dan huwa possibbli biss għax il-workers jipproċessaw ħafna talbiet wieħed wara l-ieħor.

Minn dan jinqalgħu tliet obbligi:

  1. Tinstalla l-aġġornament: PHP 8.5.12, 8.4.27, 8.3.36 jew 8.2.35 jew backport ikkonfermat tad-distribuzzjoni.
  2. Jerġgħu jinbdew il-workers kollha: Fajls ġodda fuq id-diska ma jibdlu xejn sakemm jaħdmu workers qodma. Dan japplika għal kull verżjoni installata ta' FPM u kull pool. Il-kmandi jinsabu taħt Terġgħu tibdew PHP-FPM u l-workers kollha.
  3. Jiġu ssettjati valuri temporanji b'mod imsakkar: Il-miżuri minn php.net, pereżempju session.upload_progress.enabled=0, iridu jitpoġġew fil-pool permezz ta' php_admin_value jew php_admin_flag, mhux f'.user.ini.

Is-separazzjoni f'pools ma tissostitwix aġġornament, imma tillimita d-dannu: jekk kull websajt taħdem taħt utent proprju, attakkant wara intrużjoni ma jilħaqx awtomatikament il-fajls tal-oħrajn. Kif dan jidher konkretament jiddeskrivi Iżolazzjoni tal-pools ta' PHP-FPM għal kull websajt; l-integrazzjoni f'Nginx tinsab taħt Assigurar ta' Nginx b'PHP-FPM.

Kif jgħin PHP SOS konkretament?

  • Niġbru l-pools: Nelenkaw il-verżjonijiet kollha ta' FPM, il-pools, l-utenti u s-sockets tas-server tagħkom.
  • Nippatchjaw u nerġgħu nibdew: Naġġornaw PHP u nipprovaw permezz tal-ħinijiet tal-bidu li ma jaħdem ebda worker qadim.
  • Nifirdu l-pools: Fil-qafas tal-tisħiħ tas-server nibnu għal kull websajt pool b'utent proprju u settings imsakkra.
  • Nivverifikaw l-aċċessibbiltà: Nikkontrollaw li s-sockets FastCGI u l-paġni tal-istatus ma jintlaħqux minn barra.

Mistoqsijiet frekwenti

X'tfisser FPM?

FPM tfisser FastCGI Process Manager. Il-manwal ta' PHP jiddeskrivih bħala l-implimentazzjoni primarja ta' FastCGI ta' PHP b'funzjonijiet utli fuq kollox għal websajts taħt tagħbija qawwija. Ġie inkluż ma' PHP 5.3.3.

X'inhi d-differenza bejn pool u worker?

Pool huwa grupp ta' proċessi worker b'konfigurazzjoni komuni: utent, socket, limiti u settings ta' PHP. Worker huwa proċess individwali li jipproċessa t-talbiet wieħed wara l-ieħor. Server jista' jkollu ħafna pools, pereżempju wieħed għal kull websajt.

PHP-FPM għandu jkun jintlaħaq permezz ta' TCP jew ta' Unix socket?

Jekk is-server tal-web jaħdem fuq l-istess host, il-manwal ta' PHP jirrakkomanda Unix socket. Ma' TCP irid jiġi ssettjat listen.allowed_clients, għax inkella kull indirizz jista' jikkonnettja. Port FastCGI li jintlaħaq b'mod miftuħ jippermetti, skont il-manwal, eżekuzzjoni arbitrarja ta' kodiċi.

pm.max_requests jipproteġi minn vulnerabbiltajiet bħal PHP2Shell?

Le. pm.max_requests jissostitwixxi worker wara għadd fiss ta' talbiet u jgħin fuq kollox kontra tnixxijiet tal-memorja fl-estensjonijiet. Kontra vulnerabbiltà fl-interpretatur jgħin biss l-aġġornament segwit minn restart tal-workers kollha.

Sorsi

Kuntatt immedjat

Kull siegħa tgħodd. Iktbu lilna issa.

Iddeskrivu fil-qosor is-sistema, il-verżjoni ta' PHP u dak li osservajtu. Nikkuntattjawkom, niċċaraw is-sitwazzjoni u naħdmu mill-bogħod sakemm l-inċident jingħalaq u jiġi ddokumentat.

Għajnuna immedjata