Go achomair: Is é php-cgi an bealach is sine chun PHP a oibriú taobh thiar de fhreastalaí gréasáin, agus ritheann sé ar a lán freastalaithe fós, go minic gan aird a tharraingt. Bíonn tionchar ag leochaileacht php-cgi ó PHP2Shell go sainráite ar an mód oibriúcháin seo. Paistigh, cuir deireadh le gach próiseas php-cgi atá ag rith agus pleanáil an t-aistriú chuig PHP-FPM.
Cad is php-cgi ann agus cá bhfuil sé ag rith fós
Tá PHP ann i roinnt leaganacha: mar chlár líne ordaithe, mar mhodúl Apache, mar PHP-FPM agus mar php-cgi. Is clár é php-cgi a thosaíonn an freastalaí gréasáin agus a gcuireann sé iarratais air trí CGI nó FastCGI. Gan bainistiú próiseas dá chuid féin, tá sé níos simplí ná PHP-FPM, ach níos lú inrialaithe freisin.
Is iad na háiteanna tipiciúla ina bhfaightear é ná painéil óstála níos sine, Apache le mod_fcgid, scripteanna wrapper dá gcuid féin do roinnt leaganacha PHP agus PHP faoi Windows le IIS trí FastCGI. I ngníomhaireachtaí agus in údaráis faightear freisin freastalaithe a cuireadh ar bun blianta ó shin agus nár oibríodh ó shin ach amháin.
An leochaileacht php-cgi i PHP2Shell
Cuimsíonn PHP2Shell na leochaileachtaí CVE-2026-109618 agus CVE-2026-109619 i PHP féin, an bheirt acu le CVSS v4.0 9.2. Ceadaíonn an bheirt acu cód mailíseach a rith gan logáil isteach. Luann tionscadal PHP php-cgi go sainráite i measc na modhanna oibriúcháin lena mbaineann, taobh le PHP-FPM, mod_php, FrankenPHP agus LiteSpeed.
Tá PHP 8.5.12, 8.4.27, 8.3.36 agus 8.2.35 ceartaithe. Do PHP 8.1 agus níos sine níl nuashonruithe oifigiúla ann a thuilleadh, ach backports foinse íosta do 7.4, 8.0 agus 8.1. Ritheann socruithe php-cgi go háirithe ar leaganacha sean níos minice ná an meán. Ina theannta sin, ní hé seo an chéad uair a bhí tionchar ar php-cgi: i 2024 tharraing leochaileacht i php-cgi faoi Windows (CVE-2024-4577) aird. Dá bhrí sin tá aird ar leith tuillte ag seanchórais den chineál seo.
php-cgi a aimsiú ar an bhfreastalaí
Ní léann na horduithe seo a leanas ach agus cabhraíonn siad le php-cgi a rianú. Is samplaí iad cosáin agus ainmneacha modúl.
# Próisis php-cgi atá ag rith le hám tosaithe agus úsáideoir
ps -eo pid,lstart,user,cmd | grep -E 'php-cgi|php[0-9.]*-cgi' | grep -v grep
# Cláir php-cgi suiteáilte
ls /usr/bin/php*-cgi /usr/lib/cgi-bin/php* 2>/dev/null
# Apache: An bhfuil mod_fcgid nó mod_cgi luchtaithe?
apache2ctl -M 2>/dev/null | grep -Ei 'fcgid|cgi'
grep -RniE 'FcgidWrapper|AddHandler.*php|Action.*php' /etc/apache2 /etc/httpd 2>/dev/null
Má aimsíonn tú iontrálacha FcgidWrapper nó láimhseálaithe a thugann chuig clár php-cgi, tá an mód oibriúcháin seo ag rith. Seiceáil an leagan le -v do gach clár a aimsítear. I gcás pacáistí dáilte, cruthaíonn an changelog le huimhreacha CVE an paiste, mar is minic nach n-athraíonn backports uimhir an leagain.
Paistiú agus gach próiseas a stopadh
Cuir an nuashonrú isteach tríd an mbainisteoir pacáistí nó tríd an bhfoinse as a dtagann php-cgi. Ina dhiaidh sin ní mór do gach próiseas php-cgi atá ag rith imeacht. Le mod_fcgid coinníonn Apache próisis ar feitheamh ar feadh tamaill; stopann atosú iomlán Apache iad.
# Apache a atosú go hiomlán (Debian/Ubuntu nó teaghlach RHEL)
systemctl restart apache2 # nó: systemctl restart httpd
# Rialú: An bhfuil próisis php-cgi níos sine ná an nuashonrú ann fós?
ps -eo pid,lstart,cmd | grep -E 'php-cgi' | grep -v grep
Má ritheann php-cgi trí bhainisteoir próiseas dá chuid féin nó seirbhís painéil, atosaigh é sin. Faoi Windows le IIS, athchúrsáil na linnte feidhmchláir, féach PHP faoi Windows agus IIS.
Má ritheann php-cgi le PHP 8.1 nó níos sine ar fhreastalaí atá inrochtana go poiblí, níl paiste oifigiúil ann. Cuir na bearta idirthréimhseacha i bhfeidhm láithreach agus smaoinigh, de réir mholadh an BSI, ar an bhfreastalaí a thógáil den líonra go sealadach.
Bearta idirthréimhseacha le php-cgi
Molann php.net bearta idirthréimhseacha nach dtugann cosaint iomlán. Le php-cgi baineann na luachanna le php.ini a luchtaíonn an clár lena mbaineann nó le cumraíocht an fhreastalaí. Ní leor comhaid .user.ini ná ini_set() do session.upload_progress.enabled, de réir php.net.
; php.ini na suiteála php-cgi
session.upload_progress.enabled = 0
post_max_size = 8M
upload_max_filesize = 6M
Le feidhm uaslódála, luann php.net post_max_size = 32M. Ar PHP 8.5 cuirtear fatal_error_backtraces=0 leis. Socraíonn tú teorainneacha cuimhne trí cgroups don tseirbhís freastalaí gréasáin, ní trí RLIMIT_AS ná RLIMIT_DATA. Ina dhiaidh sin gach próiseas a atosú.
An bealach chuig PHP-FPM
Ar an gcaoi fhada ní rogha mhaith é php-cgi. Tairgeann PHP-FPM linnte do gach suíomh gréasáin, úsáideoirí dá gcuid féin, teorainneacha do gach linn, leathanaigh stádais agus atosuithe rialaithe. Is furasta an t-aistriú a phleanáil de ghnáth: PHP-FPM a shuiteáil, linnte a chruthú, an freastalaí gréasáin a athrú go FastCGI chuig PHP-FPM, scripteanna wrapper a bhaint. Conas a bhíonn tógáil ghlan, léiríonn Nginx le PHP-FPM a chosaint. Má ritheann seanleagan PHP freisin, ceangail an t-athrú leis an uasghrádú.
Go dtí go mbeidh an t-aistriú déanta, ba cheart duit an chumraíocht reatha a sheiceáil go criticiúil. Níor cheart don fhreastalaí gréasáin ach comhaid leis an iarmhír .php a chur ar aghaidh chuig php-cgi agus gan cosáin a thugann chuig comhaid nach bhfuil ann. I bhfillteáin uaslódála níor cheart go mbeadh rith PHP indéanta. I gcás scripteanna wrapper a luchtaíonn php.ini ar leith do gach suíomh gréasáin, seiceáil an gcuireann na comhaid sin na luachanna idirthréimhseacha ar ceal arís. Má tá clár php-cgi go díreach i bhfillteán atá inrochtana go poiblí mar cgi-bin, ba cheart é a bhaint as sin. Is minic a thagann seanchórais den chineál seo ó threoracha suiteála blianta a chuaigh thart agus déantar dearmad orthu go simplí le linn athruithe níos déanaí. Doiciméadaigh gach aimsiú le cosán agus cuspóir ionas nach dtarlóidh aon rud a chailleadh san athrú níos déanaí.
Is tábhachtach i gcónaí: ní bhaineann paiste bogearraí mailíseacha a cuireadh isteach roimhe sin. Coinnigh na logaí ón 20.10.2026 i leith.
Conas a chabhraíonn PHP SOS go nithiúil?
- Rianaimid suiteálacha php-cgi, wrappers agus láimhseálaithe agus cuirimid leis na suíomhanna gréasáin iad.
- Paistímid, cuirimid deireadh le gach seanphróiseas agus déanaimid an staid a dhoiciméadú.
- Do PHP 8.1 agus níos sine pleanálaimid leat an mhigráil chuig leagan PHP a dtacaítear leis.
- Mar chuid de chruatú freastalaí cuirimid PHP-FPM le linnte scartha in ionad php-cgi.
Ceisteanna coitianta
An bhfuil php-cgi in úsáid agam gan fhios dom?
Tarlaíonn sé níos minice ná mar a cheapfá. Tosaíonn painéil níos sine, socruithe FastCGI le mod_fcgid agus PHP faoi Windows le IIS PHP go minic mar php-cgi. Léiríonn liosta próiseas nó an Server API i phpinfo go hiontaofa é.
An ionann FastCGI agus php-cgi?
Ní go hiomlán. Is prótacal é FastCGI. Is féidir le PHP-FPM agus php-cgi araon FastCGI a labhairt, ach is é php-cgi an clár níos sine, níos simplí gan linnte ná bainistiú próiseas. Bíonn tionchar ag PHP2Shell ar php-cgi go sainráite.
Cad is CGI clasaiceach ann i gcás PHP?
Le CGI clasaiceach, tosaíonn an freastalaí gréasáin próiseas PHP nua do gach iarratas. Tá sé sin mall agus annamh inniu. Is coitianta php-cgi taobh thiar de mod_fcgid nó FastCGI, áit a láimhseálann próisis roinnt iarratas.
An gcaithfidh mé rud éigin a atosú tar éis an nuashonraithe?
Caithfidh. I socruithe FastCGI leanann próisis php-cgi ag rith ar feadh tamaill. Atosaigh an freastalaí gréasáin nó an bainisteoir próiseas agus cinntigh nach bhfuil aon phróiseas php-cgi níos sine ná an nuashonrú.