# Iċ-ċiklu tal-ħajja tat-talba: startup, eżekuzzjoni, shutdown

> Iċ-ċiklu tal-ħajja tat-talba ta' PHP spjegat: MINIT, RINIT, RSHUTDOWN, MSHUTDOWN, użu mill-ġdid tal-workers u għaliex CVE-2026-109619 jolqot eżatt hawn.

Sors: https://phpsos.de/mt/php/request-lebenszyklus/  
Stat: 25/10/2026  
Fornitur: PHP SOS, Għajnuna ta' emerġenza għal PHP u sigurtà tas-server. Għajnuna immedjata fuq WhatsApp: https://wa.me/491736494914?text=Bongu%20PHP%20SOS%2C%20g%C4%A7andna%20b%C5%BConn%20g%C4%A7ajnuna%20bis-server%20tal-PHP%20tag%C4%A7na.%20Kumpanija%3A%20%E2%80%A6%20Websajt%3A%20%E2%80%A6

**Fil-qosor:** Iċ-ċiklu tal-ħajja tat-talba ta' PHP għandu żewġ livelli. Darba għal kull proċess PHP jgħabbi l-estensjonijiet tiegħu (fażi MINIT) u fl-aħħar jiżżarmahom mill-ġdid (MSHUTDOWN). Għal kull talba individwali hemm fażi proprja ta' bidu u ta' tindif (RINIT u RSHUTDOWN). Fit-tħaddim tal-web worker wieħed jittratta ħafna talbiet wara xulxin, u għalhekk PHP irid jirrisettja b'mod affidabbli l-istat kollu tat-talba bejn żewġ talbiet. Eżatt f'dan il-konfini kien jinsab CVE-2026-109619, it-tieni vulnerabbiltà ta' PHP2Shell.

## Żewġ livelli: il-proċess u t-talba

Għal min mhuwiex tekniku jgħin xbieha: worker ta' PHP huwa bħal sportell f'uffiċċju pubbliku. L-isportell jiġi mwaqqaf darba filgħodu, bil-formoli, it-timbri u l-kompjuter. Imbagħad jaslu ħafna viżitaturi wara xulxin. Wara kull viżitatur il-mejda trid tkun vojta, biex il-ħaddieħor ma jarax dokumenti ta' ħaddieħor.

PHP jaħdem eżatt hekk. Meta jibda proċess, jgħabbi estensjonijiet u issettjar li huma l-istess għat-talbiet kollha. Kull talba mbagħad tirċievi memorja proprja, varjabbli proprji u data proprja tat-talba bħal `$_GET`, `$_POST` jew `$_FILES`. Fi tmiem it-talba PHP jeħles din il-memorja. Il-PHP Internals Book jiġbor dan fil-qosor: PHP jinsa l-memorja tat-talba fi tmiem kull talba.

## Il-fażijiet taċ-ċiklu tal-ħajja tat-talba ta' PHP f'ħarsa

L-ismijiet ġejjin minn ġewwa PHP; kull estensjoni tista' tidħol f'dawn il-fażijiet.

| Fażi | Meta taħdem | Kemm-il darba | Kompitu tipiku |
|---|---|---|---|
| MINIT (Module Init) | meta jibda l-proċess | darba għal kull proċess | tirreġistra estensjonijiet, toħloq entrati ini, data permanenti |
| GINIT | meta jinħolqu l-globals | għal kull proċess, f'threads għal kull thread | tipprepara varjabbli globali ta' estensjoni |
| RINIT (Request Init) | fil-bidu ta' kull talba | għal kull talba | tipprepara l-memorja u l-istat tat-talba |
| Eżekuzzjoni | bejniethom | għal kull talba | il-kodiċi PHP tagħkom jaħdem |
| RSHUTDOWN | fi tmiem kull talba | għal kull talba | teħles ir-riżorsi tat-talba |
| PRSHUTDOWN | wara RSHUTDOWN | għal kull talba, rarament użat | l-aħħar xogħlijiet ta' tindif |
| MSHUTDOWN | meta jintemm il-proċess | darba għal kull proċess | teħles data permanenti |

Sentenza importanti mill-PHP Internals Book għall-iżviluppaturi ta' estensjonijiet: il-globals ma jitbattlux awtomatikament wara kull talba. Dak li jrid ikun frisk għal kull talba jappartjeni fir-reset f'RINIT. Din ir-regola turi għaliex il-konfini bejn żewġ talbiet huwa post kritiku għas-sigurtà.

Fi tmiem talba l-ordni hija wkoll stabbilita: l-ewwel jaħdmu l-funzjonijiet ta' shutdown li rreġistrajtu b'`register_shutdown_function()`, imbagħad id-destructors, imbagħad il-buffer tal-output jiġi mbattal. Biss wara dan jiġi RSHUTDOWN.

## Għaliex il-workers jerġgħu jintużaw

Fil-linja tal-kmand proċess jittratta talba waħda biss u jintemm. Fit-tħaddim tal-web dan kien jkun bil-mod wisq. PHP-FPM, Apache b'mod_php, LiteSpeed u FrankenPHP għalhekk iżommu workers lesti li jservu ħafna talbiet wara xulxin. MINIT imbagħad jaħdem darba, RINIT u RSHUTDOWN eluf ta' drabi. Kif FPM jikkontrolla l-workers tiegħu tispjegah [PHP-FPM spjegat](https://phpsos.de/mt/php/php-fpm-erklaert/).

F'PHP-FPM `pm.max_requests` jistabbilixxi wara kemm talbiet worker jerġa' jibda. L-istandard huwa `0`, jiġifieri bla limitu. Il-manwal isemmi l-issettjar bħala mezz kontra tnixxijiet tal-memorja f'libreriji ta' terzi:

```ini
; Pool ta' FPM: erġa' ibda l-worker wara 500 talba (kontra tnixxijiet tal-memorja)
pm = dynamic
pm.max_children = 20
pm.max_requests = 500
```

Il-modalità worker ta' FrankenPHP tmur anki aktar 'il bogħod: hemmhekk l-applikazzjoni kollha tibda darba u tibqa' fil-memorja. L-istat tal-applikazzjoni mbagħad jibqa' ħaj anki fil-livell ta' PHP. L-eżempju juri d-differenza:

```php
<?php
function anfrageZaehler(): int
{
    static $zaehler = 0;   // fit-tħaddim klassiku ta' FPM għal kull talba terġa' 0
    return ++$zaehler;     // fil-modalità worker il-valur ikompli jgħodd matul it-talbiet
}
echo anfrageZaehler();
```

Fit-tħaddim klassiku t-telefonata dejjem toħroġ 1, għax PHP jiskarta l-memorja tat-talba. Fil-modalità worker il-valur jikber sakemm il-worker jgħix. Id-dokumentazzjoni ta' FrankenPHP għalhekk tagħti parir li l-istat marbut mat-talba jiġi rrisettjat apposta bejn talba u oħra.

## Fejn jolqot CVE-2026-109619

CVE-2026-109619 ma jaffettwax il-kodiċi tal-applikazzjoni tagħkom, imma PHP innifsu. Skont php.net, stat intern li jappartjeni għat-talba seta' jibqa' ħaj wara li titħeles il-memorja tiegħu. Talba aktar tard fl-istess worker setgħet tużah qabel ma l-inizjalizzazzjoni rrisettjatu. Fix-xbieha: fuq il-mejda tal-isportell baqa' biċċa karta li kellha diġà tkun tneħħiet. Dettalji tal-isfruttament apposta ma nippubblikawhomx; il-klassifikazzjoni tinsab taħt [CVE-2026-109619](https://phpsos.de/mt/php2shell/cve-2026-109619/).

Il-miżuri temporanji ta' php.net għal din il-vulnerabbiltà jibdew minn modi kkonfermati, mhumiex protezzjoni sħiħa:

1. `session.upload_progress.enabled=0` f'php.ini, fil-pool ta' FPM jew fil-konfigurazzjoni tas-server, wara erġgħu ibdew il-workers kollha; mhux permezz ta' `ini_set()` jew `.user.ini`.
2. Fuq PHP 8.5 barra minn hekk `fatal_error_backtraces=0` u restart.
3. Neħħu għal kull talba issettjar invalidu jew skadut li jipproduċi messaġġi qabel l-inizjalizzazzjoni. Li tinħeba biss il-messaġġi ma jgħinx, skont php.net.
4. Irranġaw fl-applikazzjoni żbalji fatali u timeouts li jistgħu jinqalgħu minn barra, anki f'callbacks u fl-ipproċessar ta' uploads u importazzjonijiet.

Ir-rimedju veru huwa l-aġġornament għal PHP 8.5.12, 8.4.27, 8.3.36 jew 8.2.35. Peress li l-iżball jinsab fil-worker li jaħdem, jaħdem biss wara restart tal-proċessi kollha; il-passi jinsabu taħt [Erġa' ibda PHP-FPM u l-workers kollha](https://phpsos.de/mt/php2shell/php-fpm-neustart/).

> **Suġġeriment:**
> Wara r-restart iċċekkjaw b'`ps -eo pid,lstart,cmd | grep php` jekk il-proċessi kollha ta' PHP bdewx wara l-mument tal-aġġornament.

## X'jfisser iċ-ċiklu tal-ħajja għat-tħaddim u għall-iżvilupp

Mill-mudell jistgħu jinkisbu regoli ċari. Għall-amministraturi: aġġornament huwa effettiv biss meta ma jibqax jaħdem l-ebda proċess bil-kodiċi qadim. Kull modalità ta' tħaddim b'workers li jgħixu fit-tul teħtieġ restart iddokumentat. Għall-iżviluppaturi: kodiċi li jaħdem f'modalitajiet worker m'għandux iħalli stat marbut mat-talba f'varjabbli statiċi jew singletons, pereżempju data tal-utent jew permessi. Għat-tnejn japplika: żommu l-logs mill-20 ta' Ottubru 2026, biex aktar tard tkun tista' tiġi evalwata jekk seħħx xi ħaġa qabel il-patch.

## Kif jgħin PHP SOS konkretament?

Mas-[Servizz ta' patch għal PHP](https://phpsos.de/mt/leistungen/php-patch-service/) napplikaw il-mudell fil-prattika:

- **Niddeterminaw il-modalità tat-tħaddim:** Nistabbilixxu jekk jaħdimx PHP-FPM, mod_php, LiteSpeed, FrankenPHP jew php-cgi u kif jiġu amministrati l-workers.
- **Aġġornament u restart:** Napplikaw il-verżjoni korretta u nerġgħu nibdew kull worker b'mod ikkontrollat.
- **Verifika tal-proċessi:** Nuru bi ħinijiet tal-bidu u verżjonijiet li ma baqa' l-ebda proċess qadim.
- **Niċċekkjaw il-modalitajiet worker:** F'applikazzjonijiet li jgħixu fit-tul nistħarrġu jekk l-istat marbut mat-talba jiġix irrisettjat b'mod nadif.


## Mistoqsijiet frekwenti

**PHP jibda proċess ġdid għal kull talba?**  
Fil-linja tal-kmand iva, fit-tħaddim tal-web ġeneralment le. PHP-FPM, Apache b'mod_php, LiteSpeed jew FrankenPHP iħallu proċess wieħed jittratta ħafna talbiet wara xulxin. Bejn talba u oħra PHP inaddaf l-istat tat-talba.

**X'inhi d-differenza bejn MINIT u RINIT?**  
MINIT jaħdem darba meta jibda l-proċess ta' PHP, u joħloq strutturi permanenti. RINIT jaħdem fil-bidu ta' kull talba individwali u jipprepara dak li jeħtieġ biss din it-talba.

**pm.max_requests jgħin kontra CVE-2026-109619?**  
php.net ma jsemmix restarts aktar frekwenti tal-workers bħala miżura temporanja. L-issettjar jillimita biss kemm talbiet jittratta worker qabel ma jerġa' jibda. Kontra l-vulnerabbiltà jgħin l-aġġornament segwit mir-restart tal-workers kollha.

**X'inhi l-modalità worker ta' FrankenPHP?**  
Fil-modalità worker l-applikazzjoni tibda darba u tibqa' fil-memorja. Dan jiffranka l-ħin, imma varjabbli statiċi, globals u caches jibqgħu bejn talba u oħra. Skont id-dokumentazzjoni ta' FrankenPHP, l-istat marbut mat-talba għalhekk irid jiġi rrisettjat apposta.

## Sorsi

- [php.net: Avviż tas-sigurtà tal-21 ta' Ottubru 2026](https://www.php.net/)
- [Manwal ta' PHP: Konfigurazzjoni ta' FPM](https://www.php.net/manual/en/install.fpm.configuration.php)
- [PHP Internals Book: Iċ-ċiklu tal-ħajja ta' PHP](https://www.phpinternalsbook.com/)
