# Pravilno preverjanje različice PHP in stanja popravkov

> Preverjanje različice PHP na pravi način: prepoznajte stanje popravkov, backporte distribucije in tekoče procese ter vedite, ali je PHP2Shell zaprt.

Vir: https://phpsos.de/sl/php2shell/php-version-pruefen/  
Stanje: 25.10.2026  
Ponudnik: PHP SOS, Nujna pomoč za PHP in varnost strežnikov. Takojšnja pomoč po WhatsAppu: https://wa.me/491736494914?text=Pozdravljeni%2C%20PHP%20SOS%2C%20potrebujemo%20pomo%C4%8D%20z%20na%C5%A1im%20stre%C5%BEnikom%20PHP.%20Podjetje%3A%20%E2%80%A6%20Spletna%20stran%3A%20%E2%80%A6

**Na kratko:** Za preverjanje različice PHP ukaz `php -v` ne zadošča. Vedeti morate, katero različico PHP spletni strežnik res uporablja, ali paket vsebuje popravek, tudi kot backport s staro številko, in ali so bili po posodobitvi znova zagnani vsi procesi. PHP2Shell je odpravljen v 8.5.12, 8.4.27, 8.3.36 in 8.2.35.

## Zakaj številka različice sama ne zadošča

Za PHP2Shell obstaja jasen seznam odpravljenih različic. V praksi pa tri situacije vodijo v napačne ocene:

- **Več namestitev:** ukazna vrstica prikaže PHP 8.3, spletna stran pa teče prek poola s PHP 8.1.
- **Backporti:** distribucije in ponudniki gostovanja popravke deloma nameščajo v obstoječe pakete. Takrat Plesk na primer še naprej prikazuje 8.2.34, čeprav je popravljeno.
- **Stari procesi:** nove datoteke ležijo na disku, tekoči workerji pa so še od prej.

Za vodstvo in netehnike pomaga preprosto pravilo: ne sprašujte samo „Katero različico PHP imamo?“, ampak „Ali je PHP2Shell zaprt na vseh strežnikih in po čem to vidimo?“. Zanesljiv odgovor vsebuje tri dokaze: različico ali backport, stanje paketa in čas ponovnega zagona.

Tehnični pregled ima zato tri korake: različica, stanje paketa, tekoči procesi. Spodnji ukazi so izključno bralni. Imena paketov in storitev se razlikujejo po distribuciji, viru PHP in vmesniku gostovanja; primeri izhajajo iz PHP 8.3.

## Preverjanje različice PHP v ukazni vrstici

```bash
php -v                                  # različica ukazne vrstice
ls /etc/php/ 2>/dev/null                # Debian/Ubuntu: nameščene veje
php-fpm8.3 -v                           # različica binarne datoteke FPM (ime glede na distribucijo)
php -i | grep -E "^PHP Version|Server API|Loaded Configuration File"
```

V RHEL, AlmaLinux ali Rocky se binarna datoteka FPM običajno imenuje `php-fpm`; pri Software Collections ali tujih virih ležijo nadaljnje različice v lastnih poteh. Plesk in cPanel prinašata lastne namestitve PHP, ki obstajajo ob sistemskem PHP. Kako tam ravnati, opisujemo na straneh o [Pleskem](https://phpsos.de/sl/server/plesk/) in cPanelu.

Katero različico PHP spletna stran uporablja v spletnem kontekstu, najzanesljiveje vidite v konfiguraciji poola ali VirtualHost ali v vmesniku gostovanja. Pokaže jo tudi stran phpinfo; vzpostavite jo samo za kratek čas, z zaščito dostopa in naključnim imenom ter jo takoj nato izbrišite.

Pri shared hostingu običajno nimate dostopa do ukazne vrstice. Takrat vmesnik gostovanja prikaže nastavljeno različico PHP za vsako spletno stran. Ali je bil backport nameščen in znova zagnan, tam redko piše. Tu je zanesljiva pot pisna potrditev ponudnika gostovanja.

## Preverjanje stanja paketa in backportov

Stanje paketa pokaže, kaj je vaša distribucija dejansko dobavila:

```bash
# Debian/Ubuntu
apt policy php8.3-fpm
apt changelog php8.3-fpm | grep -i -E "CVE-2026-109618|CVE-2026-109619"

# RHEL, AlmaLinux, Rocky, Fedora
dnf info php-fpm
rpm -q --changelog php-fpm | grep -i -E "CVE-2026-109618|CVE-2026-109619"
```

Če je ena od številk CVE v dnevniku sprememb, je backport v nameščenem paketu vsebovan. Če vnosa ni, to še ni dokaz za ranljivost: nekateri vzdrževalci paketov dnevnike sprememb oblikujejo drugače. Takrat različico paketa primerjajte z varnostnimi sporočili svoje distribucije ali vprašajte ponudnika. Predlogo za to povpraševanje najdete na strani [Tako vprašate ponudnika gostovanja za stanje popravkov](https://phpsos.de/sl/ratgeber/hoster-patch-status-erfragen/).

Pomembno: preverite vsak nameščen paket PHP, ne samo prvega. Na strežnikih z več vejami je pogosto en popravljen, drug pa ne.

## Ali nova različica res teče?

Posodobitev je učinkovita šele, ko so bili znova zagnani vsi procesi PHP. Primerjajte čas zagona tekočih procesov s časom posodobitve:

```bash
ps -o pid,lstart,cmd -C php-fpm8.3      # čas zagona procesov FPM
systemctl status php8.3-fpm             # od kdaj storitev teče
needrestart -r l                        # Debian/Ubuntu, če je nameščen: prikaže zastarele procese
```

Če je čas zagona pred posodobitvijo, še tečejo stari procesi. Pri Apacheu z mod_php velja enako za procese Apache. Kako čisto znova zaženete, opisuje stran [Ponovni zagon PHP-FPM in vseh workerjev](https://phpsos.de/sl/php2shell/php-fpm-neustart/).

> **Nasvet:**
> Rezultat zapišite: strežnik, različica PHP, različica paketa, CVE v dnevniku sprememb da ali ne, čas ponovnega zagona. To zapisko potrebujete za vodstvo, zavarovalnico in poznejši pregled sledi.

## Uvrstitev rezultata

| Ugotovitev | Ocena |
|---|---|
| Uradna različica 8.5.12, 8.4.27, 8.3.36 ali 8.2.35, procesi znova zagnani | PHP2Shell zaprt |
| Starejša številka, številke CVE v dnevniku sprememb paketa, procesi znova zagnani | backport nameščen, zaprto |
| Starejša številka, brez vnosa v dnevniku sprememb, brez potrditve | nejasno, razjasniti pri ponudniku |
| PHP 8.1 ali starejši brez potrjenega backporta | odprto, potrebni vmesni ukrepi in selitev |
| Procesi starejši od posodobitve | ponovni zagon manjka, ranljivost še aktivna |

Če strežnik ostane v stanju „nejasno“, ga obravnavajte kot odprtega: uvedite vmesne ukrepe in razjasnitev spremljajte, dokler ni dokaza. Popoln pregled različic je na strani [Katere različice PHP so prizadete?](https://phpsos.de/sl/php2shell/betroffene-php-versionen/).

## Kako konkretno pomaga PHP SOS?

S [storitvijo popravljanja PHP](https://phpsos.de/sl/leistungen/php-patch-service/) prevzamemo pregled in dokazilo:

- **Najti vse namestitve,** tudi druge različice iz panelov gostovanja, Software Collections ali containerjev.
- **Oceniti stanje paketa:** uradna izdaja, backport ali odprto, z dokazom iz dnevnika sprememb ali od ponudnika.
- **Kontrolirati ponovni zagon,** dokler noben proces s staro kodo ne teče več.
- **Pripraviti zapisnik pregleda,** ki ga lahko uporabite interno in nasproti tretjim.


## Pogosta vprašanja

**Zakaj php -v prikazuje drugo različico kot moja spletna stran?**  
Na številnih strežnikih je nameščenih več različic PHP. Ukazna vrstica uporablja eno od njih, spletni strežnik ali pool FPM drugo. Zato preverite različico, ki dejansko teče v spletnem kontekstu, na primer prek binarne datoteke FPM ali vmesnika gostovanja.

**Kako prepoznam backport?**  
Pri paketih distribucij je popravek pogosto naveden v dnevniku sprememb paketa, pogosto s številko CVE. V Debianu in Ubuntuju pomaga apt changelog, v sistemih družine RHEL rpm -q --changelog. Če vnosa ni, stanje razjasnite pri ponudniku.

**Ali lahko različico PHP preverim v meniju za stranke pri ponudniku gostovanja?**  
Da, večina vmesnikov prikazuje nastavljeno različico za vsako spletno stran. Ali je bil backport nameščen in znova zagnan, tam običajno ne vidite. Zanesljiva pot je pisna potrditev ponudnika gostovanja.

## Viri

- [php.net: varnostna obvestila](https://www.php.net/)
- [PHP 8 ChangeLog](https://www.php.net/ChangeLog-8.php)
- [php.net: podprte različice](https://www.php.net/supported-versions.php)
