# Kompilazzjoni ta' PHP mill-kodiċi sors

> Kompilazzjoni ta' PHP mill-kodiċi sors: rekwiżiti, għażliet ta' configure, verifika tal-firma, testijiet u għaliex builds proprji jfissru obbligi proprji ta' patches.

Sors: https://phpsos.de/mt/php/php-kompilieren/  
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:** Li tikkompila PHP ifisser li tniżżel il-pakkett sors uffiċjali minn php.net, tistabbilixxi b'`./configure` l-interfaces u l-estensjonijiet mixtieqa, tibni b'`make`, tivverifika b'`make test` u mbagħad tinstalla. Dan jagħti kontroll sħiħ fuq il-verżjoni u l-ambitu. Il-prezz: għal kull aġġornament tas-sigurtà intom responsabbli, kif kien l-aħħar f'PHP2Shell, meta kellu jinbena mill-ġdid u l-proċessi kollha jerġgħu jinbdew.

## Meta builds proprji ta' PHP għandhom sens

Il-maġġoranza tas-servers jieħdu PHP minn sors ta' pakketti: mid-distribuzzjoni Linux, minn repository ta' terz jew permezz ta' immaġni ta' container. Għat-tħaddim normali dan ġeneralment huwa l-aħjar għażla, għax il-korrezzjonijiet tas-sigurtà jingħataw awtomatikament.

Builds proprji madankollu għandhom il-post tagħhom:

| Sitwazzjoni | Sors ta' pakketti | Build proprju |
|---|---|---|
| Server tal-web normali | ġeneralment aħjar | rarament meħtieġ |
| Verżjoni jew għażla mhux f'sors affidabbli | mhux disponibbli | għandu sens |
| Tfittix ta' żbalji f'PHP innifsu, debug build | limitat | għandu sens |
| Ambitu minimu ta' funzjonijiet għal sistemi speċjali | limitat | għandu sens |
| Aġġornamenti tas-sigurtà | jiġu mas-sors | kompitu proprju |

Min jiddeċiedi għal builds proprji jeħtieġ proċess fiss għall-aġġornamenti, inkella l-vantaġġ isir riskju.

## Rekwiżiti

Skont il-manwal jinħtieġu GNU make u kompilatur C; minn PHP 8.4 il-kompilatur irid jappoġġa C11. Min jibni mir-repository Git minflok minn pakkett ta' rilaxx jeħtieġ barra minn hekk autoconf (minn 2.68), re2c (minn 1.0.3 għal PHP 8.3 u iktar ġodda) u bison (minn 3.0.0). Ir-README fil-kodiċi sors isemmi għal Ubuntu dan il-bidu:

```bash
sudo apt install -y pkg-config build-essential autoconf bison re2c libxml2-dev libsqlite3-dev
```

Għal kull estensjoni addizzjonali jżidu l-pakketti tal-iżvilupp xierqa, pereżempju għal OpenSSL jew libsodium.

## Tniżżil tal-kodiċi sors u verifika tal-awtentiċità

PHP mibni waħdu huwa affidabbli biss daqs il-kodiċi sors tiegħu. php.net joffri kull pakkett b'checksum SHA-256 u firma GPG; iċ-ċwievet tar-release managers jinsabu fuq il-paġna tat-tniżżil u fuq il-paġna taċ-ċwievet GPG.

```bash
curl -O https://www.php.net/distributions/php-8.4.27.tar.xz
curl -O https://www.php.net/distributions/php-8.4.27.tar.xz.asc
sha256sum php-8.4.27.tar.xz                     # qabbel mal-valur fuq php.net
gpg --verify php-8.4.27.tar.xz.asc php-8.4.27.tar.xz
```

Biss meta ċ-checksum u l-firma jaqblu, tkompli.

## Kompilazzjoni ta' PHP: configure, make, test

Il-proċess għandu erba' passi:

1. **Ikkonfigura:** `./configure` bl-għażliet mixtieqa. Meta tibni minn Git, l-ewwel agħmel `./buildconf`.
2. **Ibni:** `make -j"$(nproc)"`; l-għadd ta' jobs, skont ir-README, jikkorrispondi b'mod raġonevoli għall-għadd ta' cores tal-proċessur.
3. **Ittestja:** `make TEST_PHP_ARGS=-j4 test` iħaddem is-suite tat-testijiet ta' PHP.
4. **Installa:** `make install`, skont id-direttorju fil-mira b'drittijiet root.

Eżempju ta' build ta' PHP-FPM b'direttorju proprju fil-mira:

```bash
tar xf php-8.4.27.tar.xz && cd php-8.4.27
./configure --prefix=/opt/php-8.4 \
  --with-config-file-path=/opt/php-8.4/etc \
  --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --with-fpm-systemd \
  --with-openssl --with-sodium \
  --disable-cgi
make -j"$(nproc)"
make TEST_PHP_ARGS=-j4 test
sudo make install
/opt/php-8.4/bin/php -v
```

L-aktar għażliet importanti f'ħarsa:

| Għażla | Effett |
|---|---|
| `--enable-fpm` | jibni PHP-FPM; flimkien ma' `--with-fpm-user`, `--with-fpm-group`, `--with-fpm-systemd` |
| `--with-config-file-path` | direttorju fejn PHP ifittex il-php.ini |
| `--with-openssl` | appoġġ ta' OpenSSL; minn PHP 7.4 il-mogħdija tinstab permezz ta' pkg-config |
| `--with-sodium` | kriptografija moderna b'libsodium |
| `--disable-cgi` | ma jibnix il-varjant CGI, jekk ma jkunx hemm bżonnu |
| `--enable-debug` | simboli ta' debug, skont ir-README rakkomandat għall-iżvilupp, mhux għall-produzzjoni |
| `--enable-zts` | sigurtà tat-threads għal modalitajiet ta' tħaddim b'threads |

B'`--prefix` jistgħu jiġu installati diversi verżjonijiet mibnija waħedhom ħdejn xulxin, pereżempju taħt `/opt/php-8.3` u `/opt/php-8.4`. Dan jiffaċilita l-bidliet, imma jeżiġi dixxiplina: kull verżjoni installata hija softwer separat li jrid jinbena mill-ġdid ma' kull rilaxx tas-sigurtà, anki jekk bħalissa ebda websajt ma tużah. Builds li m'għadx hemm bżonnhom iridu jitneħħew kompletament. Liema għażliet għandu build eżistenti turi `php -i` fil-linja “Configure Command”; hija l-aqwa mudell għall-bini mill-ġdid li jmiss.

Nota dwar OPcache: minn PHP 8.5, skont RFC aċċettat, OPcache huwa kkompilat sew. F'verżjonijiet eqdem jinbena bħala estensjoni u jitgħabba permezz ta' `zend_extension`. X'inhuma l-estensjonijiet u l-interfaces jispjegaw [Kif tifhmu l-estensjonijiet ta' PHP](https://phpsos.de/mt/php/php-erweiterungen/) u [SAPI spjegat](https://phpsos.de/mt/php/sapi-erklaert/).

## Builds proprji u sigurtà: l-obbligi wara PHP2Shell

PHP ikkompilat waħdek għandu vantaġġ reali tas-sigurtà: tibnu biss dak li teħtieġu. Kull estensjoni li ma tinbnix u kull modalità ta' tħaddim li ma tinbnix hija kodiċi li ma jistax ikun fih vulnerabbiltà. Build mingħajr CGI, b'ftit estensjonijiet u mogħdijiet ċari huwa ċar.

Mal-vantaġġ hemm obbligu iebes. Id-distribuzzjonijiet f'PHP2Shell ikkonsenjaw backports parzjalment fil-21 ta' Ottubru 2026; min jibni waħdu ma jirċievi xejn awtomatikament. Konkretament dan kien ifisser:

1. Niżżel u vverifika l-kodiċi sors tal-verżjoni bil-korrezzjoni.
2. Ibni mill-ġdid bl-istess għażliet; `php -i` juri l-linja oriġinali ta' configure.
3. Ħaddem it-testijiet u installa.
4. Erġa' ibda l-proċessi kollha ta' PHP, kif deskritt taħt [Erġa' ibda PHP-FPM u l-workers kollha](https://phpsos.de/mt/php2shell/php-fpm-neustart/).
5. Iċċekkja l-verżjoni li taħdem, kif spjegat taħt [Kif tivverifikaw sewwa l-verżjoni ta' PHP u l-istat tal-patches](https://phpsos.de/mt/php2shell/php-version-pruefen/).

> **Importanti:**
> PHP mibni waħdu ma jidhir f'ebda maniġer tal-pakketti. Żommu inventarju ta' fuq liema servers jaħdmu builds proprji f'liema verżjoni, inkella jiġu injorati fil-vulnerabbiltà li jmiss.

## Kif jgħin PHP SOS konkretament?

Permezz tas-[Servizz ta' patch għal PHP](https://phpsos.de/mt/leistungen/php-patch-service/) nappoġġjaw lill-operaturi ta' builds proprji:

- **Nirreġistraw l-istokk:** Insibu verżjonijiet ta' PHP mibnija waħedhom u naqraw l-għażliet tal-bini tagħhom.
- **Nibnu mill-ġdid:** Verżjoni bil-korrezzjoni b'firma vverifikata, l-istess għażliet u eżekuzzjoni sħiħa tat-testijiet.
- **Nirrilaxxaw u nerġgħu nibdew:** Installazzjoni, restart tal-proċessi kollha, kontroll tal-verżjoni li taħdem.
- **Nissimplifikaw:** Fejn sors ta' pakketti miżmum jissodisfa l-istess skop, nuru t-tranżizzjoni.


## Mistoqsijiet frekwenti

**Meta jaqbel li PHP jiġi kkompilat waħdek?**  
Meta verżjoni jew għażla meħtieġa mhijiex disponibbli f'ebda sors ta' pakketti affidabbli, għall-iżvilupp u t-tfittix ta' żbalji f'PHP innifsu jew għal builds speċjali u rqaq ħafna. Għal servers tal-web normali, pakketti miżmuma huma ġeneralment l-aħjar għażla.

**Kif nivverifika li l-kodiċi sors ta' PHP huwa awtentiku?**  
php.net joffri għal kull pakkett sors checksum SHA-256 u firma GPG. Qabblu ċ-checksum u vverifikaw il-firma ma' ċ-ċwievet tar-release managers ippubblikati fuq php.net.

**Għandi nerġa' nikkompila wara rilaxx tas-sigurtà?**  
Iva. PHP mibni waħdek ma jirċievi l-ebda aġġornament mid-distribuzzjoni. Wara PHP2Shell dan kien ifisser: ibni l-kodiċi sors ta' 8.5.12, 8.4.27, 8.3.36 jew 8.2.35, installah u erġa' ibda l-proċessi kollha ta' PHP.

**Fejn insib l-għażliet kollha ta' configure?**  
B'./configure --help fid-direttorju sors. Il-manwal isemmi l-għażliet ewlenin tal-qalba, l-għażliet għall-estensjonijiet jinsabu fuq il-paġni tal-manwal tagħhom.

## Sorsi

- [Manwal ta' PHP: Installazzjoni mill-kodiċi sors](https://www.php.net/manual/en/install.unix.source.php)
- [Manwal ta' PHP: Għażliet ta' configure](https://www.php.net/manual/en/configure.about.php)
- [Manwal ta' PHP: Installazzjoni ta' FPM](https://www.php.net/manual/en/install.fpm.install.php)
- [php.net: Pakketti sors b'checksums u firem](https://www.php.net/downloads.php)
