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 →

JIT u prestazzjoni f'PHP 8

Il-kompilatur JIT jittraduċi PHP f'kodiċi tal-magna minn 8.0. Għal websajts tipiċi jġib ftit; OPcache, verżjonijiet aġġornati u konfigurazzjoni nadifa jġibu aktar.

Stat 5 min. qariGħarfien dwar PHP

Fil-qosor: Il-PHP JIT (Just-in-time compiler) jittraduċi waqt it-tħaddim kodiċi PHP li jiġi eżegwit ta' spiss f'kodiċi tal-magna. Wasal ma' PHP 8.0, huwa parti minn OPcache u minn PHP 8.4 huwa mitfi b'mod awtomatiku. Kompiti li jeħtieġu ħafna kalkolu jsiru b'mod sinifikanti aktar veloċi, websajts tipiċi bħal WordPress bilkemm. Il-qligħ akbar jiġi minn OPcache, minn verżjoni aġġornata ta' PHP u minn amministrazzjoni tal-proċessi ssettjata sewwa, u kull verżjoni aġġornata ġġib fl-istess ħin il-korrezzjonijiet meħtieġa tas-sigurtà.

X'inhu l-kompilatur JIT f'PHP?

PHP hija lingwa interpretata: il-kodiċi sors l-ewwel jiġi tradott f'bytecode, l-hekk imsejħa opcodes, u dawn teżegwihom iż-Zend Engine. JIT jagħmel pass 'il quddiem. Josserva liema sezzjonijiet tal-kodiċi jaħdmu spiss u jittraduċi eżatt dawn f'kodiċi tal-magna għall-proċessur. Minn hemm 'il quddiem jaħdmu mingħajr il-mogħdija tul l-interpretatur.

L-RFC tal-introduzzjoni jiddeskrivi l-JIT bħala parti kważi indipendenti ta' OPcache. Il-kodiċi tal-magna ġġenerat jinsab f'żona addizzjonali tal-memorja kondiviża ta' OPcache. B'PHP 8.4 il-proġett bena mill-ġdid il-JIT; skont il-paġna tar-rilaxx, l-implimentazzjoni l-ġdida hija bbażata fuq il-framework IR, rappreżentazzjoni intermedja komuni għall-ġenerazzjoni tal-kodiċi. Kif taħdem l-magna taħtha tispjegah iz-Zend Engine.

OPcache l-ewwel: il-bażi vera tal-prestazzjoni

Mingħajr OPcache PHP jittraduċi kull fajl mill-ġdid ma' kull talba. OPcache iżomm il-bytecode fil-memorja kondiviża, biex il-workers kollha jerġgħu jużawh. Għal websajt b'sistema ta' ġestjoni tal-kontenut dan huwa bil-bosta l-aktar mezz importanti. Minn PHP 8.5, skont l-RFC aċċettat, OPcache huwa kkompilat sew f'PHP; l-issettjar ini magħruf jibqa' jikkontrolla jekk il-cache huwiex attiv.

Valuri standard importanti skont il-manwal: opcache.enable=1, opcache.enable_cli=0, opcache.validate_timestamps=1 u opcache.revalidate_freq=2. Bl-aħħar issettjar OPcache jivverifika l-aktar darba kull sekondtejn jekk il-fajls inbidlux. Min jitfi validate_timestamps irid jaqta' l-cache wara kull deployment jew jerġa' jibda PHP. Aktar dwar dan taħt OPcache spjegat.

Konfigurazzjoni tal-PHP JIT: modalitajiet u issettjar

Il-JIT jiġi kkontrollat permezz ta' żewġ direttivi:

Direttiva Standard minn 8.4 Standard qabel 8.4 Tifsira
opcache.jit disable tracing Modalità tal-JIT
opcache.jit_buffer_size 64M 0 Memorja għal kodiċi tal-magna ġġenerat, 0 jitfi l-JIT

Għal opcache.jit il-manwal jaf dawn il-valuri: disable (mitfi għalkollox, ma jistax jinxtegħel waqt it-tħaddim), off (mitfi, imma jista' jinxtegħel waqt it-tħaddim), tracing jew on (rakkomandat għall-biċċa l-kbira tal-utenti) u function. Minbarra dan hemm notazzjoni numerika ta' erba' ċifri għal issettjar fin.

; Ixgħel il-JIT b'mod immirat, pereżempju għal workers li jeħtieġu ħafna kalkolu
opcache.enable=1
opcache.jit=tracing
opcache.jit_buffer_size=64M

Jekk il-JIT jaħdimx juri l-istatus ta' OPcache:

php -i | grep -i "opcache.jit"          # Issettjar tas-CLI
php --ri "Zend OPcache"                 # Konfigurazzjoni tal-estensjoni OPcache

Innutaw li l-linja tal-kmand tista' tuża issettjar differenti minn PHP-FPM. Għat-tħaddim tal-web jgħodd l-output ta' phpinfo() fil-kuntest ta' FPM, idealment mitlub biss internament u mneħħi wara.

X'iġib il-JIT fil-prattika?

L-awturi tal-RFC kejlu: l-iskript sintetiku bench.php ġera b'JIT aktar mid-doppju tal-veloċità. B'applikazzjonijiet reali l-qligħ kien żgħir; WordPress wasal għal 326 minflok 315 talba fis-sekonda, il-parser ta' PHP ġera madwar 1,3 darbiet aktar malajr. L-RFC jgħid miftuħ li l-JIT ma jaċċelerax b'mod sinifikanti applikazzjonijiet reali bħal WordPress.

Ir-raġuni tinsab fil-profil ta' applikazzjonijiet tal-web tipiċi. Jistennew il-biċċa l-kbira tal-ħin lid-database, lis-sistema tal-fajls jew lis-servizzi esterni. Mogħdija aktar veloċi tal-proċessur hemmhekk tgħin ftit. Jistgħu jibbenefikaw minflok l-ipproċessar tal-immaġini f'PHP, kalkoli matematiċi, parsers jew workers li jaħdmu fit-tul.

Prestazzjoni mingħajr JIT: il-mezzi aktar effettivi

Għal websajts u ħwienet ta' kumpaniji tkun tajba din l-ordni:

  1. Verżjoni aġġornata ta' PHP: Verżjonijiet ġodda jġibu ottimizzazzjonijiet u, qabel kollox, korrezzjonijiet tas-sigurtà.
  2. Daqs korrett ta' OPcache: biżżejjed memorja u spazju għall-fajls kollha tal-applikazzjoni.
  3. Issettjar adattat ta' PHP-FPM: pm.max_children jiġi adattat għall-memorja disponibbli, minflok ma jitqajjem għomja.
  4. Verifika tad-database: sib mistoqsijiet bil-mod, issettja indiċijiet.
  5. Caching fil-livell tal-applikazzjoni: cache tal-paġni jew tal-oġġetti, fejn is-sistema tappoġġjah.
  6. Kejjel minflok tobsor: request_slowlog_timeout f'PHP-FPM jikteb backtrace fis-slowlog għal talbiet bil-mod.

JIT, prestazzjoni u sigurtà

Il-prestazzjoni u s-sigurtà huma relatati aktar mill-qrib milli jidher. L-ewwel: kull komponent addizzjonali huwa kodiċi addizzjonali. L-RFC tal-introduzzjoni nnifsu jsemmi r-riskju ta' żbalji fil-JIT, fil-ġenerazzjoni tal-kodiċi u fl-allokazzjoni tar-reġistri, kif ukoll il-fehim aktar diffiċli tagħhom. Min ma jeħtieġx il-JIT b'mod li jista' jitkejjel, iħallih fl-istandard disable.

It-tieni: OPcache u l-workers iżommu kodiċi fil-memorja. Wara aġġornament tas-sigurtà bħal dak għal PHP2Shell, proċessi qodma jibqgħu jaħdmu bil-kodiċi qadim sakemm jerġgħu jinbdew. Li tbattal il-cache waħdu ma jieħux post dan ir-restart, għax il-vulnerabbiltajiet CVE-2026-109618 u CVE-2026-109619 jinsabu fil-binary ta' PHP nnifisha.

It-tielet: l-aqwa qligħ ta' prestazzjoni, verżjoni aġġornata, huwa fl-istess ħin l-aktar miżura importanti ta' protezzjoni. PHP 8.2 jilħaq it-tmiem tal-appoġġ fil-31 ta' Diċembru 2026; min jaqleb issa għal 8.4 jew 8.5 jirbaħ it-tnejn. Kif inżommu s-sistemi veloċi u mqawwija fit-tul tiddeskrivih it-Tishiħ tas-server għal servers tal-web ta' PHP.

Kif jgħin PHP SOS konkretament?

  • Analiżi tas-sitwazzjoni attwali: Naqraw l-issettjar ta' OPcache, JIT u FPM u nqabbluh mat-tagħbija u mal-memorja.
  • Kejl tal-konġestjonijiet: Bis-slowlog u b'indikaturi tas-server insibu fejn verament jintilef il-ħin.
  • Konfigurazzjoni sigura: JIT biss fejn jgħin b'mod muri; OPcache b'mod li d-deployments u l-aġġornamenti jaħdmu sewwa.
  • Ippjanar tal-aġġornamenti: Bidliet ta' verżjoni b'test u restart iddokumentat, biex il-veloċità u l-istat tal-patches jaqblu.

Mistoqsijiet frekwenti

JIT f'PHP huwa attiv b'mod awtomatiku?

Minn PHP 8.4 le aktar: il-valur standard ta' opcache.jit huwa disable. Qabel kien issettjat tracing, imma l-buffer opcache.jit_buffer_size kien fuq 0, u għalhekk anki l-JIT ma kienx jaħdem.

JIT jagħmel WordPress aktar veloċi?

Bilkemm. Diġà fl-RFC tal-introduzzjoni l-awturi jiktbu li l-JIT ma jaċċelerax b'mod sinifikanti applikazzjonijiet reali bħal WordPress. Il-kejl tagħhom telgħa minn 315 għal 326 talba fis-sekonda.

Għandi bżonn OPcache jekk ma nużax il-JIT?

Iva. OPcache jaħżen il-bytecode tradott fil-memorja kondiviża u jiffranka l-kompilazzjoni mill-ġdid ma' kull talba. Dan huwa l-aktar mezz importanti ta' prestazzjoni għal kważi kull websajt PHP. Minn PHP 8.5 OPcache huwa mibni sew f'PHP.

JIT huwa riskju tas-sigurtà?

Aktar kodiċi jfisser aktar żbalji possibbli. L-RFC tal-introduzzjoni nnifsu jsemmi r-riskju ta' żbalji fil-JIT u l-fehim aktar diffiċli tagħhom. Min ma jeħtiġux iħallih mitfi; min juża, għandu japplika l-aġġornamenti b'mod partikolarment rapidu.

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