# PHP-FPM spjegat: maniġer tal-proċessi, pools u workers

> PHP-FPM spjegat: kif jaħdmu master, pools u workers, x'jfissru pm static, dynamic u ondemand u liema settings tal-pool iġibu sigurtà.

Sors: https://phpsos.de/mt/php/php-fpm-erklaert/  
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:** 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](https://phpsos.de/mt/php/cgi-und-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:

```ini
; /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](https://phpsos.de/mt/php2shell/php-fpm-neustart/).
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](https://phpsos.de/mt/blog/php-fpm-pools-isolieren/); l-integrazzjoni f'Nginx tinsab taħt [Assigurar ta' Nginx b'PHP-FPM](https://phpsos.de/mt/server/nginx-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](https://phpsos.de/mt/leistungen/server-haertung/) 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

- [Manwal ta' PHP: FastCGI Process Manager](https://www.php.net/manual/en/install.fpm.php)
- [Manwal ta' PHP: Konfigurazzjoni ta' FPM](https://www.php.net/manual/en/install.fpm.configuration.php)
- [php.net: Rilaxx ta' PHP 5.3.3](https://www.php.net/releases/5_3_3.php)
- [php.net: Avviżi tas-sigurtà](https://www.php.net/)
