# Tħaddim ta' PHP f'containers

> Tħaddim ta' PHP f'container: varjanti tal-immaġini, php.ini tal-produzzjoni, estensjonijiet, limiti tal-memorja, logs u aġġornamenti. Bi eżempji u rabta ma' PHP2Shell.

Sors: https://phpsos.de/mt/php/php-in-containern/  
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:** Biex tħaddmu PHP f'containers, agħżlu l-varjant xieraq tal-immaġni uffiċjali (`fpm`, `apache` jew `cli`), attivaw il-php.ini tal-produzzjoni, installaw biss l-estensjonijiet meħtieġa u ssettjaw limiti tal-memorja u tal-proċessi li jaqblu ma' xulxin. Il-containers huma immutabbli: aġġornament tas-sigurtà ta' PHP bħal dak għal PHP2Shell jaħdem biss meta l-immaġni tinbena mill-ġdid u kull container jerġa' jinbeda. Dan il-bini mill-ġdid għalhekk jappartjeni bħala proċess fiss f'kull tħaddim ta' containers.

## Għaliex PHP f'containers?

Il-containers jippakkjaw PHP, l-estensjonijiet u l-konfigurazzjoni f'immaġni li taħdem l-istess fuq kull server. Għall-kumpaniji dan ifisser: inqas sorpriżi bejn it-test u l-produzzjoni, irkupru aktar mgħaġġel u stati ċari tal-verżjonijiet. Għas-sigurtà, madankollu, ifisser ukoll obbligu ġdid: ħadd ma japplika aġġornamenti awtomatikament f'container.

Din il-paġna tittratta t-tħaddim kurrenti. Kif tapplikaw patches konkreti kontra PHP2Shell fuq containers eżistenti tinsab taħt [Applika patches għal PHP f'containers Docker](https://phpsos.de/mt/php2shell/docker-container-patchen/).

## L-għażla tal-varjant korrett tal-immaġni

| Varjant | Kontenut | Użu tipiku |
|---|---|---|
| `php:<version>-fpm` | PHP-FPM, jeħtieġ server tal-web quddiemu | Produzzjoni b'Nginx, Caddy jew Ingress |
| `php:<version>-apache` | Apache b'mod_php, b'mod awtomatiku mpm_prefork | strutturi sempliċi, applikazzjonijiet eqdem |
| `php:<version>-cli` | Linja tal-kmand, fiha bħala l-unika varjant ukoll php-cgi | Cronjobs, queue workers, passi ta' build |
| `…-alpine` | fuq Alpine Linux b'musl | immaġini żgħar, ma' xi estensjonijiet jinħtieġu aġġustamenti |
| `…-bookworm`, `…-trixie` | fuq il-verżjoni msemmija ta' Debian | bażi fissa għal builds riproduċibbli |

Għal proġetti ġodda ġeneralment huwa rakkomandat il-varjant `fpm` b'container separat tas-server tal-web. B'mod_php it-tim ta' PHP, b'rabta ma' PHP2Shell, jaraw l-ogħla riskju; min juża l-immaġni `apache` iħaddem eżatt din il-modalità tat-tħaddim.

## Bini ta' immaġni tal-produzzjoni

Eżempju żgħir għal applikazzjoni b'aċċess għal MySQL:

```dockerfile
FROM php:8.4-fpm-alpine

# Attiva l-konfigurazzjoni tal-produzzjoni (skont id-dokumentazzjoni tal-immaġni, rakkomandat bil-qawwa)
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"

# Biss l-estensjonijiet meħtieġa
RUN docker-php-ext-install -j"$(nproc)" pdo_mysql

# Issettjar proprju
COPY zz-sicherheit.ini "$PHP_INI_DIR/conf.d/"

# Il-kodiċi jappartjeni lil root; il-workers ta' FPM jaħdmu bħala www-data u jistgħu jaqrawh biss
COPY . /var/www/html
```

L-iskripts ta' għajnuna tal-immaġni jieħdu ħsieb il-bini tal-estensjonijiet: `docker-php-ext-configure` għall-għażliet, `docker-php-ext-install` għall-bini, `docker-php-ext-enable` biex jattiva, pereżempju wara `pecl install`. Jekk il-kodiċi sors jinfetaħ b'`docker-php-source`, skont id-dokumentazzjoni għandu jitħassar mill-ġdid fl-istess saff. Il-fajl `zz-sicherheit.ini` jista' jidher hekk:

```ini
expose_php = Off
display_errors = Off
log_errors = On
session.use_strict_mode = 1
session.cookie_httponly = 1
```

Żewġ prinċipji oħra jagħmlu l-immaġini aktar robusti. L-ewwel, l-immaġni kkonsenjata fiha biss dak li hemm bżonn waqt it-tħaddim; kompilaturi, caches tal-pakketti u fajls tat-test jappartjenu fi stadju separat ta' build. It-tieni, l-utent li taħtu jaħdem PHP għandu jikteb biss fejn hemm bżonn, pereżempju f'direttorji ta' upload jew cache fuq volumes imwaħħla. Ħafna timijiet iħaddmu l-container ukoll b'sistema tal-fajls protetta mill-kitba. Fajl PHP injettat mbagħad ikollu ħafna aktar diffikultà biex jibqa' b'mod permanenti, u kull restart jerġa' jwassal l-istat nadif tal-immaġni. Dan ma jissostitwixxix investigazzjoni wara inċident, imma jnaqqas b'mod notevoli s-superfiċje ta' attakk.

## Proċessi, memorja u logs fil-container

Tliet viti jiddeterminaw jekk container ta' PHP jaħdimx b'mod stabbli.

1. **Għadd ta' workers:** `pm.max_children` fil-pool ta' FPM jistabbilixxi kemm talbiet jiġu ttrattati fl-istess ħin. Kull worker jista' jokkupa sa `memory_limit`.
2. **Limitu tal-memorja tal-container:** Jillimita l-proċessi kollha flimkien. Bħala regola mhux eżatta japplika: għadd ta' workers darbiet il-memorja għal kull worker flimkien ma' riżerva jrid jidħol taħt il-limitu, inkella s-sistema ttemm proċessi.
3. **Logs:** Il-containers jiktbu l-logs fuq l-output standard. F'PHP-FPM `catch_workers_output = yes` jibgħat l-outputs tal-workers lejn il-log ewlieni; mingħajr l-issettjar, skont il-manwal, jispiċċaw fix-xejn.

Utli barra minn hekk huwa `request_terminate_timeout`, li jtemm talbiet individwali wara perjodu ta' żmien jekk `max_execution_time` ma jaħdimx. Kif tħaddmu containers f'cluster tiddeskrivih [Applika patches għal PHP f'Kubernetes](https://phpsos.de/mt/server/kubernetes/).

## Containers u sigurtà: dak li wera PHP2Shell

F'PHP2Shell il-containers għandhom rwol doppju. Min-naħa waħda huma għajnuna: php.net jirrakkomanda bħala miżura temporanja għal CVE-2026-109618 li `memory_limit=-1` jiġi kkombinat ma' limitu tal-memorja permezz ta' container jew cgroup, idealment b'mod li jintemm biss il-worker affettwat. `RLIMIT_AS` u `RLIMIT_DATA` huma, skont php.net, mhux adattati għal dan. Din il-miżura mhix protezzjoni sħiħa u ma tieħux post l-aġġornament.

Min-naħa l-oħra l-containers huma nassa jekk l-immaġini ma jinbnewx mill-ġdid. Immaġni b'PHP 8.4.26 tibqa' vulnerabbli, kemm-il darba jerġa' jibda l-container. Biss bini mill-ġdid għal 8.4.27 jew aktar ġdid u l-bdil tal-containers kollha li jaħdmu jagħlqu l-vulnerabbiltà. L-istat jista' jiġi kkontrollat direttament fil-container li jaħdem:

```bash
docker exec <container> php -v
docker exec <container> php-fpm -v
docker exec <container> php -r 'var_dump(ini_get("memory_hard_limit_percent"));'
```

Jekk l-aħħar kmand jirritorna `bool(false)`, PHP ma jafx id-direttiva introdotta mal-verżjonijiet bil-korrezzjoni; skont il-manwal il-verżjoni mbagħad hija affettwata. B'mod permanenti jgħin biss bini awtomatiku mill-ġdid, kif deskritt taħt [CI/CD: ibni mill-ġdid awtomatikament l-immaġini ta' PHP](https://phpsos.de/mt/blog/php-images-in-ci-neu-bauen/).

> **Suġġeriment:**
> Stabbilixxu fid-Dockerfile il-verżjoni eżatta ta' PHP fit-tag u żiduha apposta. B'hekk fil-kodiċi jista' jiġi ntraċċat meta ġiet imqassma liema verżjoni.

## Kif jgħin PHP SOS konkretament?

Fit-[tishiħ tas-server għal servers tal-web ta' PHP](https://phpsos.de/mt/leistungen/server-haertung/) nieħdu ħsieb ukoll il-containers:

- **Niċċekkjaw l-immaġini:** Immaġni bażi, verżjoni ta' PHP, estensjonijiet u konfigurazzjoni ta' kull immaġni.
- **Insaħħu l-konfigurazzjoni:** Ini tal-produzzjoni, lista irqiqa ta' estensjonijiet, limiti adattati ta' workers u memorja.
- **Nwaqqfu l-bini mill-ġdid:** Proċess li jibni u jrilaxxa mill-ġdid l-immaġini ma' rilaxxi ġodda ta' PHP.
- **Nikkontrollaw it-tħaddim:** Nuru li f'kull container li jaħdem taħdem il-verżjoni korretta.


## Mistoqsijiet frekwenti

**Liema varjant tal-immaġni ta' PHP huwa t-tajjeb?**  
Għal Nginx jew proxy ieħor il-varjant fpm, għal struttura sempliċi b'Apache il-varjant apache, għal skripts u cronjobs il-varjant cli. Il-varjanti Alpine huma iżgħar, imma jiddependu minn musl minflok glibc, li ma' xi estensjonijiet jinnota.

**PHP f'container jiġi aġġornat awtomatikament?**  
Le. Container li jaħdem ma jinbidilx. Trid terġa' tibni l-immaġni bil-verżjoni l-ġdida ta' PHP u terġa' tibda l-containers. Biss imbagħad taħdem il-verżjoni korretta.

**Kif iġibu ruħhom memory_limit u l-limitu tal-container?**  
memory_limit jillimita kull talba individwali ta' PHP, il-limitu tal-container il-container kollu. It-tnejn iridu jaqblu: l-għadd ta' workers darbiet il-memorja għal kull worker għandu jkun taħt il-limitu tal-container.

**Għandi bżonn php.ini f'containers?**  
Iva. L-immaġini uffiċjali jiġu b'php.ini-development u php.ini-production bħala mudelli. Għall-produzzjoni d-dokumentazzjoni tal-immaġni tirrakkomanda espliċitament il-mudell tal-produzzjoni; l-issettjar proprju jidħol f'conf.d.

## Sorsi

- [Docker Official Image: PHP](https://hub.docker.com/_/php)
- [Manwal ta' PHP: Konfigurazzjoni ta' FPM](https://www.php.net/manual/en/install.fpm.configuration.php)
- [php.net: Avviż tas-sigurtà tal-21 ta' Ottubru 2026](https://www.php.net/)
