# Kodėl php -v po atnaujinimo rodo tą patį numerį

> php -v po atnaujinimo rodo tą patį versijos numerį? Kodėl taip daro atgaliniai perkėlimai, kada tai nekenksminga, kada įspėjamasis ženklas ir kaip tai išsiaiškinti.

Šaltinis: https://phpsos.de/lt/blog/php-v-zeigt-alte-nummer/  
Būsena: 2026-10-25  
Teikėjas: PHP SOS, PHP avarinė pagalba ir serverio sauga. Skubi pagalba per „WhatsApp“: https://wa.me/491736494914?text=Sveiki%2C%20PHP%20SOS%2C%20mums%20reikia%20pagalbos%20su%20m%C5%ABs%C5%B3%20PHP%20serveriu.%20%C4%AEmon%C4%97%3A%20%E2%80%A6%20Svetain%C4%97%3A%20%E2%80%A6

**Trumpai:** Jei `php -v` po atnaujinimo rodo tą pačią versiją, dažniausiai dėl atgalinio perkėlimo (backport): distribucija į esamą PHP versiją perima tik saugumo taisymą, numeris lieka tas pats. Ubuntu 24.04 taip toliau praneša 8.3.6, nors paketas nuo PHP2Shell ištaisytas. Klausimą išsiaiškinkite per paketo būseną ir pakeitimų žurnalą ir papildomai patikrinkite, ar svetainė tikrai veikia su nauju kodu.

## Tipiškas momentas po PHP2Shell

Administratorius įdiegė atnaujinimą, viskas be klaidų. Kontrolei jis įveda `php -v` ir mato tą pačią versiją kaip anksčiau. Ar atnaujinimas nepavyko? Ar serveris vis dar atviras? Šis klausimas yra vienas iš dažniausių nuo 2026 m. spalio 21 d.

Gera žinia: daugeliu atvejų viskas gerai. Bloga: yra ir atvejų, kai tas pats numeris iš tiesų rodo problemą. Šis straipsnis padeda atskirti abu.

## Kodėl distribucijos numerio nekeičia

Įmonių ir LTS distribucijos žada stabilumą. Viename leidime elgsena ir sąsajos kiek įmanoma neturi keistis. Šuolis nuo PHP 8.3.6 į 8.3.36 atneštų daugybę klaidų taisymų ir mažų elgsenos pakeitimų, kurie galėtų trikdyti programas.

Todėl daugelis paketų prižiūrėtojų į savo esamą versiją perima tik konkretų saugumo taisymą. Šis veiksmas vadinamas atgaliniu perkėlimu (backport). Upstream versija, kurią PHP pats praneša per `php -v`, lieka ta pati. Keičiasi paketo būsena, kurią suteikia distribucija.

Ubuntu 24.04 pavyzdyje tai atrodo taip: PHP praneša 8.3.6. Ištaisyta paketo būsena pagal USN-8948-1 yra `8.3.6-0ubuntu0.24.04.13`. Svarbi galinė dalis. Debian su PHP2Shell nusprendė kitaip ir bookworm bei trixie pateikė naujas upstream versijas 8.2.35 ir 8.4.27. Apžvalga pagal leidimą pateikta straipsnyje [Debian ir Ubuntu: ar mano PHP paketas pataisytas?](https://phpsos.de/lt/blog/debian-ubuntu-paket-gepatcht/).

Verta vieną kartą išskaidyti tokią paketo versiją. Pavyzdyje `8.3.6-0ubuntu0.24.04.13`: dalis prieš brūkšnelį yra upstream versija, t. y. tai, ką praneša pats PHP. Toliau seka distribucijos revizija. `ubuntu0.24.04` nurodo leidimą, paskutinis skaičius skaičiuoja peržiūras. Kiekvienas saugumo taisymas šį skaičių padidina. Ubuntu Pro atveju papildomai atsiranda priedas, pavyzdžiui, `+esm5`, Debian saugumo atnaujinimuose kaip `~deb12u1`. Kas moka šias dalis perskaityti, iš karto pamato, ar paketas po saugumo pranešimo buvo pakeistas.

## Kur visur pasirodo senas numeris

Nepakitęs numeris rodomas ne tik `php -v`. Jis yra ir vietose, matomose iš išorės arba vertinamose įrankių:

| Vieta | Kas ten rašoma | Pasekmė |
|---|---|---|
| `php -v` ir `php -i` | Upstream versija, kūrimo data | Administratoriai abejoja atnaujinimu |
| phpinfo puslapis | Upstream versija | tas pats poveikis naršyklėje |
| Antraštė `X-Powered-By` | Upstream versija, jei `expose_php` įjungtas | išoriniai skeneriai praneša apie spragą |
| Talpinimo valdymo skydeliai, pavyzdžiui, Plesk | Upstream versija | rodoma, pavyzdžiui, 8.2.34 nepaisant pataisos |
| Pažeidžiamumų skeneriai | Palyginimas pagal numerį | Klaidingas aliarmas esant atgaliniams perkėlimams |

Išoriniai skeneriai yra atskiras atvejis. Kas juos naudoja, po PHP2Shell gali gauti radinių serveriams, kurie jau seniai ištaisyti. Šių radinių neignoruokite bendrai, o kiekvienam serveriui įrodykite paketo būseną ir radinį pažymėkite kaip patikrintą. Dar viena priežastis slėpti versijų nurodymus išorei aprašyta straipsnyje [expose_php ir serverio antraštės](https://phpsos.de/lt/blog/expose-php-versionsangaben/).

## Kada tas pats numeris yra įspėjamasis ženklas

Yra trys situacijos, kai nepakitęs numeris iš tiesų rodo problemą:

1. **Paketų šaltinis teikia upstream versiją.** Jei PHP ateina iš šaltinio, kuris paprastai teikia aktualią upstream versiją, pavyzdžiui, Debian su PHP2Shell ar trečiųjų šalių šaltiniai, tokie kaip Remi ir sury.org, po atnaujinimo turėtų būti 8.5.12, 8.4.27, 8.3.36 arba 8.2.35. Jei vis dar sena versija, paketas neatnaujintas.
2. **Tikrinate netinkamą diegimą.** `php -v` rodo komandinę eilutę. Jei svetainė veikia per kitą versiją, pavyzdžiui, iš talpinimo valdymo skydelio ar Software Collection, išvestis apie svetainę nieko nesako.
3. **Paketo būsena nepasikeitė.** Jei ir paketo būsena tokia pati kaip prieš atnaujinimą, atnaujinimas šiam paketui nepasiekė, pavyzdžiui, nes jis sulaikytas arba trūksta šaltinio.

Ne techninių žinių turintiems galima apibendrinti taip: versijos numeris apibūdina modelį, paketo būsena priežiūros lygį. Du serveriai su ta pačia PHP versija saugumo požiūriu gali gerokai skirtis. Todėl savo IT ar paslaugų teikėjo klauskite ne versijos, o pataisos įrodymo.

## Kaip išsiaiškinti per penkias minutes

Toliau pateiktos komandos tik skaito. Pavyzdžiai remiasi Ubuntu ar Debian ir PHP 8.3; RHEL sistemose vietoje `dpkg-query` naudokite `rpm -q`.

```bash
# 1. Ką praneša pats PHP, įskaitant kūrimo datą?
php -v

# 2. Kokia paketo būsena įdiegta, iš kokio šaltinio?
apt policy php8.3-fpm

# 3. Ar pakeitimų žurnale yra CVE numeriai?
apt changelog php8.3-fpm 2>/dev/null | grep -E "CVE-2026-10961[89]"

# 4. Nuo kada veikia svetainės PHP procesai?
ps -eo pid,lstart,cmd | grep "[p]hp-fpm"
```

Kūrimo data `php -v` išvestyje yra požymis, bet ne įrodymas. Patikimą įrodymą teikia pakeitimų žurnalo įrašas. Kaip jį rasti ir užfiksuoti, jei jis suformuluotas kitaip arba jo nėra, aprašo straipsnis [CVE numerių įrodymas paketo pakeitimų žurnale](https://phpsos.de/lt/blog/cve-im-changelog-nachweisen/).

> **Patarimas:**
> Po kiekvienos patikros užsirašykite abu numerius: upstream versiją iš `php -v` ir paketo būseną. Kas vėliau paklaus, kodėl serveris „vis dar 8.3.6“, gaus aiškų atsakymą.

Bendrą patikrą per versiją, paketą ir procesus apibendrina skyrelis [Kaip teisingai patikrinti PHP versiją ir pataisų būseną](https://phpsos.de/lt/php2shell/php-version-pruefen/).

## Kaip PHP SOS padeda konkrečiai?

- Kiekvienam serveriui išsiaiškiname, ar nepakitęs versijos numeris yra atgalinis perkėlimas, ar trūkstamas atnaujinimas.
- Vertiname pažeidžiamumų skenerių radinius ir klaidingus aliarmus įrodome paketo būsena ir pakeitimų žurnalu.
- Tikriname, kurį PHP diegimą svetainė iš tikrųjų naudoja ir ar jo procesai paleisti iš naujo.
- [PHP pataisų paslaugoje](https://phpsos.de/lt/leistungen/php-patch-service/) dokumentuojame upstream versiją ir paketo būseną greta.


## Dažni klausimai

**Ar mano serveris nepataisytas, jei php -v rodo seną numerį?**  
Nebūtinai. Daugelis distribucijų taisymus perima kaip atgalinį perkėlimą (backport) į esamą versiją. Pavyzdžiui, Ubuntu 24.04 toliau rodo 8.3.6, nors paketas, pasak USN-8948-1, ištaisytas. Lemia paketo būsena ir pakeitimų žurnalas.

**Kodėl mano saugumo skeneris nepaisant atnaujinimo praneša apie spragą?**  
Daugelis skenerių skaito tik versijos numerį, pavyzdžiui, iš antraštės X-Powered-By. Esant atgaliniams perkėlimams tai sukelia klaidingus aliarmus. Patikrinkite paketo būseną ir rezultatą dokumentuokite, užuot radinį tiesiog ignoravę.

**Ar gali būti, kad php -v rodo naują numerį, o svetainė ne?**  
Taip. php -v rodo komandinę eilutę. Svetainė gali veikti per kitą diegimą arba per procesus, paleistus prieš atnaujinimą. Todėl patikrinkite ir FPM paslaugą ar Apache bei jų paleidimo laiką.

**Ar padeda kūrimo (build) data php -v išvestyje?**  
Tai požymis, bet ne įrodymas. Kūrimo data po 2026 m. spalio 21 d. atitinka ištaisytą paketą, bet neįrodo, kad taisymas yra. Pakeitimų žurnalo įrašas yra geresnis įrodymas.

## Šaltiniai

- [Ubuntu Security Notice USN-8948-1](https://ubuntu.com/security/notices/USN-8948-1)
- [Debian Security Tracker: CVE-2026-109618](https://security-tracker.debian.org/tracker/CVE-2026-109618)
- [php.net: saugumo pranešimai](https://www.php.net/)
