Trumpai: Kas dar eksploatuoja PHP 8.1 ar senesnę versiją, iš PHP projekto oficialių saugumo atnaujinimų nebegauna, taip pat ir dėl PHP2Shell. PHP 8.1 atnaujinimas iki palaikomos versijos todėl yra ne pasirinkimas, o tikrasis sprendimas. Tikriname jūsų programas, bandome kopijoje, kontroliuojamai pereiname ir apsaugome laiką iki to.
Kodėl PHP 8.1 ir senesnės dabar yra ūmi rizika
PHP2Shell spragos CVE-2026-109618 ir CVE-2026-109619 leidžia vykdyti kodą be prisijungimo. Jos ištaisytos PHP 8.5.12, 8.4.27, 8.3.36 ir 8.2.35 versijose. PHP 8.1 ir senesnėms versijoms oficialių atnaujinimų nebėra, tėra minimalūs šaltinio kodo atgaliniai perkėlimai (backports) 7.4, 8.0 ir 8.1 versijoms. Pasak specializuotos spaudos, paveiktos beveik visos versijos iki pat PHP 5.4.
Kai kurios distribucijos ir talpintojai įdiegia savo atgalinius perkėlimus. Ar jūsų sistema tarp jų, teikėjas turi patvirtinti jūsų konkrečiai paketų būsenai. Be šio patvirtinimo reikėtų daryti prielaidą, kad serveris atviras. Ką tai reiškia išsamiau, aprašo PHP 8.1 ir senesnės: kas dabar galioja.
PHP 8.1 atnaujinimas: kokia tikslinė versija?
Tikslas turėtų būti versija, kurią PHP projektas dar palaiko ir kurią jūsų programa leidžia. Dabartinę palaikymo būklę php.net skelbia palaikomų versijų puslapyje. PHP 8.2 baigiasi 2026 m. gruodžio 31 d.; perėjimas prie 8.2 todėl būtų tik tarpinis žingsnis su greitu tolesniu projektu.
Kurią PHP versiją palaiko jūsų CMS ar parduotuvės sistema, tikriname pagal gamintojo sistemos reikalavimus, pavyzdžiui, wordpress.org, shopware.com ar typo3.org, o ne atmintinai. Dažnai pirmiausia reikia atnaujinti patį CMS. Senos parduotuvės yra tipiškas atvejis, žr. Shopware 5: senos parduotuvės su sena PHP versija.
Kaip PHP SOS padeda konkrečiai?
- Inventorizacija ir apsauga: Surašome visas programas, jų PHP versiją, CMS būklę, plėtinius ir nuosavą kodą. Lygiagrečiai taikome pereinamąsias priemones pagal php.net, kad rizika iki migracijos mažėtų; išsamiau puslapyje WAF ir virtualus pataisymas.
- Patikrinti suderinamumą: Lyginame gamintojų sistemos reikalavimus, tikriname priklausomybes su Composer ir nuosavame kode ieškome pasenusių funkcijų. Kaip tai atrodo su priklausomybėmis, aprašo Composer priklausomybių tikrinimas dėl spragų.
- Bandymas kopijoje: Programa pirmiausia veikia bandomojoje aplinkoje su nauja PHP versija. Klaidas ten šaliname arba dokumentuojame jūsų agentūrai.
- Perjungimas su grįžimo keliu: Gyvas perjungimas vyksta suderintame priežiūros lange su naujausia atsargine kopija ir nustatytu grįžimo keliu.
- Pokontrolė: Po perjungimo tikriname klaidų žurnalus ir pagrindines funkcijas bei pašaliname seną PHP versiją, kai jos nebereikia.
Nepavojingas žvilgsnis, kurios svetainės kokią PHP versiją naudoja, daugelyje sistemų įmanomas per veikiančius FPM baseinus:
# parodyti veikiančius PHP-FPM pagrindinius procesus ir baseinus
ps -eo pid,cmd | grep -E "php-fpm: (master|pool)" | grep -v grep
# įdiegtos PHP versijos (Debian/Ubuntu)
ls /etc/php/
Atnaujinimas iki naujos PHP versijos nepašalina kenkėjiškos programinės įrangos, įterptos anksčiau. Jei serveris nuo 2026 m. spalio 17 d. buvo neapsaugotas tinkle, prie to priklauso ir pėdsakų patikra.
Tipinės kliūtys atnaujinant
Dauguma problemų keičiant PHP versiją nuspėjamos, jei žinai, kur ieškoti:
- Pasenę plėtiniai: įskiepiai ar moduliai, kurie nebeprižiūrimi, naujesnėse PHP versijose dažnai neveikia. Jiems reikia pakaitalo ar pritaikymo.
- Nuosavas kodas: funkcijos, kurias PHP jau pažymėjo kaip pasenusias ar pašalino, sukelia įspėjimus ar nutrūkimus. Griežtesnis tipų tikrinimas atskleidžia senas programavimo klaidas.
- Priklausomybės: bibliotekos, įtrauktos per Composer, kartais pačios reikalauja naujų versijų ir sukelia tolesnių pakeitimų.
- PHP plėtiniai serveryje: ne kiekvienas plėtinys, įdiegtas senoje versijoje, naujoje atsiranda automatiškai.
- Cron užduotys ir komandinė eilutė: svetainė jau veikia naujoje versijoje, bet planuojamos užduotys vis dar kviečia senąją PHP versiją.
Kas šiuos punktus patikrina iš anksto, sutrumpina perjungimą ir išvengia siurprizų gyvoje veikloje.
Ką gausite ir ko mums reikia
Gaunate visų programų apžvalgą su pradine ir tikslinė versija, migracijos planą su eiliškumu ir rizikomis, bandymų protokolą, perjungimo dokumentaciją ir punktų, kuriuos dar turi atlikti jūsų agentūra ar kūrėjas, sąrašą.
Iš jūsų mums reikia:
- serverio ar skydelio prieigos ir prieigos prie CMS administravimo dalių
- prieigos prie šaltinio kodo ir saugyklos nuosavų sprendimų atveju
- kontakto su agentūra ar kūrėju, kuris pažįsta programą
- bandomosios aplinkos arba leidimo ją sukurti
- priežiūros langų ir kontaktinio asmens priėmimui
Ko neapsiimame
Neapsiimame, kad kiekviena sena programa be pakeitimų veiks naujoje PHP versijoje. Sistemose be tolesnio vystymo gali prireikti didesnio pertvarkymo ar sistemos keitimo; tai sakome atvirai, vos tik tai ima ryškėti. Suderinamumo teiginius grindžiame gamintojų duomenimis. O pereinamosios priemonės nėra migracijos pakaitalas, jos tik užpildo laiką. Ilgalaikes pasenusių versijų rizikas aprašo PHP gyvavimo pabaiga: pasenusių versijų rizikos.
Dažni klausimai
Ar PHP 8.1 paveikta PHP2Shell?
Pasak specializuotos spaudos, paveiktos beveik visos versijos iki pat PHP 5.4. PHP 8.1 ir senesnėms versijoms PHP projektas oficialių atnaujinimų neteikia, tėra minimalūs šaltinio kodo atgaliniai perkėlimai (backports) 7.4, 8.0 ir 8.1 versijoms. Kai kurios distribucijos įdiegia savo atgalinius perkėlimus, tai turi patvirtinti atitinkamas teikėjas.
Į kurią PHP versiją turėčiau atnaujinti?
Į versiją, kurią PHP projektas dar aktyviai palaiko ir kurią jūsų programa pagal gamintojo sistemos reikalavimus leidžia. PHP 8.2 palaikymas baigiasi 2026 m. gruodžio 31 d., todėl kaip tikslas jis tinka tik sąlygiškai.
Ar negaliu tiesiog perjungti PHP versijos talpinimo skydelyje?
Techniškai tai dažnai įmanoma vienu paspaudimu. Ar programa po to dar veiks, priklauso nuo CMS versijos, plėtinių ir nuosavo kodo. Be bandymo rizikuojate sutrikimais ar klaidingomis funkcijomis, pavyzdžiui, parduotuvės kasoje.
Kas bus, jei mano CMS naujos PHP versijos nepalaiko?
Tuomet pirmiausia reikia atnaujinti CMS, galbūt iki naujos pagrindinės versijos. Sistemose be tolesnio vystymo gali prireikti keisti sistemą. Iki tol serverį apsaugome pereinamosiomis priemonėmis.