Sitwazzjoni attwali: PHP2Shell. Żewġ vulnerabbiltajiet kritiċi ta' PHP (CVSS 9,2) jippermettu kodiċi malizzjuż mingħajr login. Patches mill-21/10/2026.X'għandu jsir issa →

Kompilazzjoni ta' PHP mill-kodiċi sors

PHP jista' jinbena waħdek b'configure u make. Dan jagħti kontroll fuq l-estensjonijiet u l-għażliet, imma wkoll ir-responsabbiltà sħiħa għal kull aġġornament tas-sigurtà.

Stat 5 min. qariGħarfien dwar PHP

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:

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.

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:

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 u SAPI spjegat.

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.
  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.
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 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

Kuntatt immedjat

Kull siegħa tgħodd. Iktbu lilna issa.

Iddeskrivu fil-qosor is-sistema, il-verżjoni ta' PHP u dak li osservajtu. Nikkuntattjawkom, niċċaraw is-sitwazzjoni u naħdmu mill-bogħod sakemm l-inċident jingħalaq u jiġi ddokumentat.

Għajnuna immedjata