# Patching ta' PHP fil-kontenituri Docker

> Aġġornament tal-image Docker ta' PHP kontra PHP2Shell: iċċekkjaw il-verżjoni fil-kontenitur, ibnu l-image mill-ġdid u oħolqu l-kontenituri.

Sors: https://phpsos.de/mt/php2shell/docker-container-patchen/  
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:** Aġġornament tal-image Docker ta' PHP huwa obbligu kontra PHP2Shell, u ma jsirx waħdu. Trid tibni jew tniżżel l-image b'verżjoni rranġata ta' PHP, terġa' toħloq kull kontenitur minnha u tivverifika li fil-kontenitur li jaħdem tkun qed taħdem 8.5.12, 8.4.27, 8.3.36 jew 8.2.35. Restart sempliċi tal-kontenitur mhuwiex biżżejjed.

## Għaliex il-kontenituri mhumiex awtomatikament sikuri

Image Docker hija stampa ffriżata. Il-PHP fiha jibqa' fl-istat li kellu meta nbniet, anke jekk fuq l-host ilhom jinstallaw aġġornamenti. Aġġornament tal-pakkett fuq is-sistema tal-host ma jibdel xejn fil-PHP tal-kontenitur.

Jiżdiedu ostakli tipiċi: images mibnija xhur ilu u mhux mittiefsa minn dak iż-żmien, images bażi b'tag fiss bħal `php:8.3.35-fpm`, caches lokali li waqt il-bini jerġgħu jużaw l-image bażi l-qadima u kontenituri li ġew mibdija mill-ġdid imma qatt ma nħolqu mill-ġdid. Huma affettwati l-modalitajiet tat-tħaddim kollha li huma komuni fil-kontenituri: PHP-FPM, Apache b'mod_php u FrankenPHP.

Jiżdied mistoqsija ta' responsabbiltà. F'ħafna kumpaniji aġenzija jew żviluppatur ibnew l-image darba, imma titħaddem mill-IT interna jew minn hoster. Allura ħadd ma jħossu responsabbli għall-istat ta' PHP fl-image. Għalhekk l-ewwel iċċaraw min jibni l-image, fejn jinsab id-Dockerfile u min jista' jqassam images ġodda.

## Iċċekkjaw il-verżjoni ta' PHP fil-kontenitur

Iċċekkjaw il-kontenitur li jaħdem, mhux biss id-Dockerfile. Il-kmandi huma biss ta' qari.

```bash
docker ps --format "table {{.Names}}\t{{.Image}}\t{{.CreatedAt}}"
docker exec <container> php -v
docker exec <container> php -i | grep -E "^PHP Version|Server API"
docker image inspect <image> --format "{{.Created}}"
```

Jekk l-image tuża pakketti tad-distribuzzjoni minflok builds uffiċjali ta' PHP, iċċekkjaw l-istat tal-pakkett fil-kontenitur. L-ismijiet tal-pakketti jvarjaw skont id-distribuzzjoni bażi:

```bash
docker exec <container> sh -c "apt policy php8.3-fpm 2>/dev/null || apk info -v 2>/dev/null | grep php"
```

Fil-każ ta' pakketti tad-distribuzzjoni jista' jkun hemm backport installat minkejja li n-numru tal-verżjoni jibqa' qadim. Allura jgħodd il-changelog tal-pakkett. L-images uffiċjali ta' PHP, bil-kontra, ġeneralment iġibu PHP ikkumpilat huma stess; hemmhekk in-numru tal-verżjoni minn `php -v` huwa l-valur deċiżiv. Kif tagħrfu backports tiddeskrivih [Kif tivverifikaw sewwa l-verżjoni ta' PHP u l-istat tal-patches](https://phpsos.de/mt/php2shell/php-version-pruefen/).

## Aġġornament tal-image Docker ta' PHP: nibnu mill-ġdid u nqassmu

**Image proprja bbażata fuq image ta' PHP:** Niżżlu l-image bażi mill-ġdid u ibnu mingħajr cache.

```bash
docker build --pull --no-cache -t meine-app:2026-10-25 .
docker run --rm meine-app:2026-10-25 php -v      # iċċekkja l-verżjoni qabel it-tqassim
```

**B'Docker Compose:** Niżżlu jew ibnu l-images u oħolqu l-kontenituri mill-ġdid.

```bash
docker compose pull
docker compose build --pull --no-cache
docker compose up -d --force-recreate
```

Wara iċċekkjaw mill-ġdid b'`docker exec <container> php -v` jekk il-verżjoni l-ġdida taħdimx. Jekk il-kontenitur għandu tag fiss tal-verżjoni fid-Dockerfile, pereżempju `FROM php:8.3.35-fpm`, trid togħla t-tag. Tag fuq il-fergħa bħal `php:8.3-fpm` jirċievi stati ġodda tal-patches, imma biss jekk tniżżel mill-ġdid.

Żommu l-image preċedenti lesta sakemm il-verżjoni l-ġdida tiġi ttestjata. F'każ ta' żball tistgħu tmorru lura mingħajr ma l-applikazzjoni tibqa' offline għal żmien twil. L-image l-qadima, madankollu, fiha mill-ġdid il-PHP vulnerabbli; triq lura hija għalhekk difendibbli biss għal żmien qasir u bil-miżuri temporanji.

Min juża Kubernetes iqassam l-image l-ġdida permezz tad-deployment. Dettalji f'[Patching ta' PHP f'Kubernetes](https://phpsos.de/mt/server/kubernetes/). Għall-images ta' FrankenPHP japplika l-istess proċess; indikazzjonijiet dwar il-modalità tat-tħaddim insibu f'[Kif tissiguraw FrankenPHP](https://phpsos.de/mt/server/frankenphp/).

> **Importanti:**
> Tinsewx kontenituri sekondarji: workers tal-cron u tal-queue, għodod tal-amministrazzjoni jew ambjenti ta' staging spiss jużaw l-istess image ta' PHP, imma jaħdmu f'kontenituri proprji. Kull wieħed minnhom irid jinħoloq mill-ġdid.

## Miżuri temporanji fil-kontenitur

Jekk l-aġġornament għad ma jistax isir, il-miżuri temporanji ta' php.net japplikaw ukoll fil-kontenitur. Mhumiex protezzjoni sħiħa. Il-limitu tal-memorja jappartjeni hawnhekk fil-kontenitur, għax php.net jirrakkomandah permezz ta' kontenitur jew cgroup, mhux permezz ta' `RLIMIT_AS` jew `RLIMIT_DATA`:

```ini
; pereż. bħala fajl fl-image: /usr/local/etc/php/conf.d/zz-uebergang.ini
memory_limit = -1
post_max_size = 8M
upload_max_filesize = 6M
session.upload_progress.enabled = 0
```

```bash
docker run --memory=1g ...         # jew f'Compose: deploy.resources.limits.memory
```

Il-valur taġġustawh għall-applikazzjoni tagħkom. Oqogħdu attenti li l-applikazzjoni ma tistax tissovrascrivi `memory_limit` waħedha; b'PHP-FPM għal dan insettjaw il-valuri fil-pool b'`php_admin_value`. Konfigurazzjoni ġdida taħdem biss meta l-kontenitur jinħoloq mill-ġdid jew jerġa' jinbeda; l-isfond dwar ir-restart insibu f'[Restart ta' PHP-FPM u tal-workers kollha](https://phpsos.de/mt/php2shell/php-fpm-neustart/).

## Biex il-ħaġa li jmiss tmur aktar malajr

- Erġgħu ibnu l-images regolarment u awtomatikament, mhux biss meta jinbidel il-kodiċi.
- Użaw images bażi b'tag tal-fergħa u rreġistraw l-istat mibni b'data jew digest.
- Ħallu l-images jiġu vverifikati għal vulnerabbiltajiet magħrufa qabel it-tqassim u ħaddmu l-kontenituri mingħajr drittijiet root.
- Żommu inventarju ta' liema kontenituri jużaw liema image.

## Kif tgħin PHP SOS b'mod konkret?

- **Niġbru l-istat:** Niċċekkjaw il-kontenituri kollha li jaħdmu, l-images u l-verżjonijiet ta' PHP tagħhom, anke kontenituri sekondarji u staging.
- **Nibnu mill-ġdid u nqassmu:** Permezz tas-[servizz ta' patch ta' PHP](https://phpsos.de/mt/leistungen/php-patch-service/) nibnu l-images bil-verżjoni rranġata u noħolqu mill-ġdid il-kontenituri b'mod ikkontrollat.
- **Niżguraw it-tranżizzjoni,** fejn l-aġġornament jiddependi mill-applikazzjoni: valuri ta' php.net, limitu tal-memorja fuq il-kontenitur.
- **Nissorveljaw b'mod permanenti:** Bis-[sorveljanza tas-sigurtà](https://phpsos.de/mt/leistungen/security-monitoring/) inżommu taħt għajnejna l-istati tal-images u l-imġiba mhux tas-soltu tal-kontenituri.


## Mistoqsijiet frekwenti

**Huwa biżżejjed docker restart wara l-aġġornament?**  
Le. docker restart jibda l-kontenitur mill-ġdid bl-istess image qadima. Trid tibni jew tniżżel l-image l-ġdida u terġa' toħloq il-kontenitur minnha, pereżempju b'docker compose up -d --force-recreate.

**L-image uffiċjali ta' PHP diġà fiha l-verżjoni rranġata?**  
Dan l-aħjar tivverifikawh direttament: niżżlu l-image mill-ġdid u ħallu php -v jaħdem fiha. Huma mistennija 8.5.12, 8.4.27, 8.3.36 jew 8.2.35. Jekk l-image turi numru aktar antik, għadha mhix aġġornata jew ġejja minn cache.

**PHP fil-kontenitur huwa inqas f'riskju milli fuq l-host?**  
Il-vulnerabbiltà nnifisha taħdem fil-kontenitur bl-istess mod. Kontenitur mibni tajjeb jista' jillimita l-konsegwenzi ta' dħul, pereżempju b'utent mingħajr drittijiet root u sistema tal-fajls protetta mill-kitba. Ma jieħux post il-patch.

## Sorsi

- [php.net: Avviżi tas-sigurtà](https://www.php.net/)
- [PHP 8 ChangeLog](https://www.php.net/ChangeLog-8.php)
- [OWASP Cheat Sheets](https://cheatsheetseries.owasp.org/)
