An cás reatha: PHP2Shell. Ceadaíonn dhá leochaileacht chriticiúla PHP (CVSS 9.2) cód mailíseach gan logáil isteach. Paistí ar fáil ón 21 Deireadh Fómhair 2026.Cad atá le déanamh anois →

Eisínteachtaí PHP (Extensions) a thuiscint

Cuireann eisínteachtaí tiománaithe bunachar sonraí, criptiú nó taisceanna le PHP. Seo na cineálacha, conas iad a luchtú agus a sheiceáil, agus cad is brí leo do nuashonruithe agus cruatú.

Staid Am léitheoireachta: 5 nóim.Eolas PHP

Go achomair: Is modúil i C iad eisínteachtaí PHP (Extensions) a chuireann feidhmeanna le PHP, mar shampla tiománaithe bunachar sonraí (PDO), criptiú (Sodium, OpenSSL) nó an taisce bytecode OPcache. Déanann lámhleabhar PHP idirdhealú idir eisínteachtaí Core, Bundled, External agus PECL. Luchtaítear iad trí extension nó zend_extension in php.ini. Ritheann gach eisínteacht sa phróiseas PHP lena chearta. Dá bhrí sin: ná luchtaigh ach an méid atá de dhíth, agus nuashonraigh le PHP le chéile iad.

Cad is eisínteachtaí PHP ann?

Is féidir le croí PHP, an Zend Engine, cód a rith, ach tá a lán de na rudaí a theastaíonn ó fheidhmchláir in eisínteachtaí. Tá siad scríofa i C agus tiomsaítear iad go seasta isteach i PHP nó luchtaítear iad mar leabharlann chomhroinnte (.so faoi Linux, .dll faoi Windows) ag an tús.

Tábhachtach do lucht cinnteoireachta: ní breiseáin den fheidhmchlár iad eisínteachtaí, ach cuid de thimpeallacht rite PHP. Suiteálann an soláthraí óstála nó riarthóir an fhreastalaí iad, ní an ghníomhaireacht sa CMS. Mura bhfuil eisínteacht ann, tuairiscíonn an feidhmchlár earráid de ghnáth le linn na suiteála nó an nuashonraithe.

Chomh tábhachtach céanna is ea an t-idirdhealú ó phacáistí Composer. Suiteálann Composer leabharlanna atá scríofa i PHP agus atá san fhillteán tionscadail, mar shampla pacáiste ríomhphoist nó PDF. Is cód tiomsaithe iad eisínteachtaí, ar an láimh eile, a luchtaítear nuair a thosaíonn PHP agus a bhfuil feidhm acu ar gach feidhmchlár ar an bhfreastalaí. Cuireann a lán pacáistí Composer eisínteachtaí áirithe i gceangal agus déanann siad é a thabhairt faoi deara ina composer.json le hiontrálacha ar nós ext-intl nó ext-sodium. An té ar mhaith leis a sheiceáil an bhfaigheann tionscadal gach eisínteacht riachtanach, is féidir leis composer check-platform-reqs a rith san fhillteán tionscadail.

Cé na cineálacha eisínteachtaí atá ann?

Ordaíonn lámhleabhar PHP eisínteachtaí i gceithre ghrúpa:

Grúpa Brí de réir an lámhleabhair Samplaí ón lámhleabhar
Core cuid de chroí PHP, ní féidir é a mhúchadh Arrays, Date/Time, Hash, JSON, PCRE, SPL, Strings
Bundled seachadtha le PHP BC Math, Ctype, Fileinfo, Filter, GD, intl, mbstring, PDO, Sessions
External seachadtha le PHP, teastaíonn leabharlanna seachtracha uathu cURL, DOM, GMP, LDAP, OpenSSL, Sodium, Zip
PECL ar fáil trí PECL, uaireanta le leabharlanna seachtracha APCu, Memcached, MongoDB, Yaml

Féadfaidh an sannadh athrú. Le PHP 8.4, de réir an leathanaigh eisiúna, baineadh na heisínteachtaí IMAP, OCI8, PDO_OCI agus pspell den phacáiste seachadta agus aistríodh go PECL iad. An té a úsáideann iad, teastaíonn suiteáil ar leith uaidh tar éis an uasghrádaithe, a chaithfear a chothabháil freisin.

Conas a luchtaítear eisínteachtaí?

Luchtaítear eisínteachtaí comhroinnte, de réir an lámhleabhair, tríd an treoir extension in php.ini; eisínteachtaí Zend, a théann níos doimhne isteach san inneall, trí zend_extension. Ní fhéadfaidh an dá cheann a bheith ach in php.ini. Socraíonn extension_dir an t-eolaire, agus molann an lámhleabhar cosán absalóideach dó.

; gnáth-eisínteachtaí
extension=pdo_mysql
extension=sodium
extension=intl

; eisínteacht Zend: OPcache (luchtaigh roimh Xdebug, má tá an dá cheann gníomhach)
zend_extension=opcache

Cuireann dáiltí ar nós Debian agus Ubuntu comhad .ini beag dá chuid féin le gach eisínteacht san eolaire scanta, mar shampla faoi /etc/php/8.3/mods-available/, agus cumasaíonn siad do gach SAPI iad le phpenmod agus phpdismod. Míníonn php.ini mínithe conas a léann PHP na comhaid seo.

Suiteálaítear eisínteachtaí den chuid is mó tríd an mbainisteoir pacáistí, mar shampla mar phacáiste php8.3-intl. Is féidir eisínteachtaí PECL a thógáil le pecl nó phpize. De réir an lámhleabhair, tá PECL dímholta; molann sé an PHP Installer for Extensions (PIE). An té a thógann PHP ar fad é féin, gheobhaidh sé leideanna ag PHP a thiomsú ón gcód foinseach.

Eisínteachtaí a sheiceáil: cé acu atá luchtaithe i ndáiríre?

Is orduithe léitheoireachta amháin iad na horduithe seo a leanas. Tabhair faoi deara gur féidir leis an líne ordaithe eisínteachtaí eile a luchtú ná an suíomh gréasáin.

php -m                              # modúil an CLI
php-fpm8.3 -m                       # modúil PHP-FPM 8.3 (ainm de réir dáilte)
php --re sodium | head -n 5         # feidhmeanna eisínteachta
php --ri opcache                    # cumraíocht eisínteachta
php -r 'var_dump(extension_loaded("intl"));'

Sa chód seiceálann feidhmchláir le extension_loaded() an bhfuil eisínteacht ann, agus le get_loaded_extensions() cé acu atá luchtaithe:

<?php
$benoetigt = ['pdo_mysql', 'mbstring', 'intl', 'sodium'];
$fehlend = array_diff($benoetigt, array_map('strtolower', get_loaded_extensions()));
echo $fehlend ? 'Fehlt: ' . implode(', ', $fehlend) : 'Alle Erweiterungen vorhanden';

Eisínteachtaí agus slándáil: is fearr níos lú

Ritheann eisínteachtaí sa phróiseas céanna le PHP agus leis na cearta céanna. Is féidir le hearráid in eisínteacht a bheith chomh tromchúiseach le hearráid sa chroí, dá bhrí sin. Leanann ceithre riail as sin:

  1. Ná luchtaigh ach an méid atá de dhíth. Méadaíonn gach eisínteacht bhreise an dromchla ionsaithe. Seiceáil do liosta i gcoinne riachtanais chórais an fheidhmchláir.
  2. Nuashonraigh le PHP le chéile. Tagann eisínteachtaí a seachadadh leis an nuashonrú PHP. Teastaíonn nuashonruithe ar leith ó eisínteachtaí PECL agus tríú páirtí agus ní mór dóibh a bheith comhoiriúnach leis an leagan nua PHP.
  3. Ná húsáid uirlisí forbartha i dtáirgeadh. Ní bhaineann dífhabhtóirí agus próifíleoirí ar nós Xdebug ach le timpeallachtaí forbartha.
  4. Feidhmeanna a chur faoi ghlas go sonrach. Nuair a thugann eisínteachtaí feidhmeanna le haghaidh orduithe córais, cabhraíonn disable_functions a úsáid i gceart.

I gcás PHP2Shell, tá na leochaileachtaí i gcroí PHP, ní in eisínteacht. Ní dhúnann modúil a mhúchadh iad; teastaíonn an nuashonrú go 8.5.12, 8.4.27, 8.3.36 nó 8.2.35 agus atosú gach próiseas PHP. Tar éis an nuashonraithe ba cheart duit a sheiceáil an bhfuil na heisínteachtaí go léir luchtaithe arís, mar is minic nach dtugtar faoi deara modúil atá ar iarraidh ach i bhfeidhmeanna áirithe. Déanann Spleáchais a choinneáil cothrom le dáta cur síos ar an gcaoi chun spleáchais a choinneáil faoi smacht go buan.

Conas a chabhraíonn PHP SOS go praiticiúil?

  • Bunscéal a thaifeadadh: Liostaímid do gach SAPI gach eisínteacht luchtaithe lena bunús agus a leagan.
  • Glanadh: Cuirimid an liosta i gcomparáid le riachtanais d'fheidhmchláir agus díghníomhachtaímid an iomarcach tar éis tástála.
  • Nuashonrú: Mar chuid de chruatú freastalaí tugaimid PHP agus gach eisínteacht tríú páirtí go staid chothabháilte.
  • Seiceáil tar éis nuashonruithe: Deimhnímid tar éis gach nuashonraithe PHP go bhfuil na modúil riachtanacha go léir luchtaithe arís.

Ceisteanna coitianta

Cad é an difríocht idir extension agus zend_extension?

Le extension luchtaíonn PHP gnáth-eisínteachtaí ar nós tiománaithe bunachar sonraí. Le zend_extension luchtaítear, de réir an lámhleabhair, eisínteachtaí Zend a théann níos doimhne isteach san inneall, mar shampla OPcache nó Xdebug. Ní fhéadfaidh an dá threoir a bheith ach in php.ini.

Conas a fheicim cé na heisínteachtaí atá luchtaithe?

Ar an líne ordaithe le php -m, don suíomh gréasáin tríd an bhfeidhm get_loaded_extensions() i gcomhad seiceála sealadach nó trí php-fpm -m an leagain ábhartha. Tabhair faoi deara gur féidir le CLI agus SAPI gréasáin eisínteachtaí éagsúla a luchtú.

Cad is PECL ann agus cad is PIE ann?

Is eolaire d'eisínteachtaí PHP é PECL a chuirtear ar fáil tríd an gcóras pacáistí PEAR. De réir lámhleabhar PHP, tá PECL dímholta; molann sé an PHP Installer for Extensions (PIE) ina ionad.

An ndúnann eisínteacht a mhúchadh PHP2Shell?

Ní dhúnann. Tá leochaileachtaí PHP2Shell i gcroí PHP, ní in eisínteacht is féidir a mhúchadh. Laghdaíonn níos lú eisínteachtaí an dromchla ionsaithe go ginearálta, ach ní thagann siad in ionad an nuashonraithe go leagan ceartaithe.

Foinsí

Teagmháil láithreach

Cuireann gach uair an chloig leis. Scríobh chugainn anois.

Déan cur síos gearr ar an gcóras, leagan PHP agus an rud a thug tú faoi deara. Cuirfimid scéala chugat, soiléireoimid an cás agus oibreoimid go cianda go dtí go mbeidh an teagmhas dúnta agus doiciméadaithe.

Cabhair láithreach