# Jak správně ověřit verzi PHP a stav záplaty

> Kontrola verze PHP správně: poznáte stav záplat, backporty distribuce a běžící procesy a budete vědět, zda je PHP2Shell na vašem serveru uzavřeno.

Zdroj: https://phpsos.de/cs/php2shell/php-version-pruefen/  
Stav: 25.10.2026  
Poskytovatel: PHP SOS, Nouzová pomoc pro PHP a bezpečnost serverů. Okamžitá pomoc přes WhatsApp: https://wa.me/491736494914?text=Dobr%C3%BD%20den%2C%20PHP%20SOS%2C%20pot%C5%99ebujeme%20pomoc%20s%20na%C5%A1%C3%ADm%20PHP%20serverem.%20Firma%3A%20%E2%80%A6%20Web%3A%20%E2%80%A6

**Stručně:** Ke kontrole verze PHP nestačí `php -v`. Musíte vědět, kterou verzi PHP webový server skutečně používá, zda balíček obsahuje opravu, i jako backport se starým číslem, a zda byly po aktualizaci restartovány všechny procesy. PHP2Shell je opraveno v 8.5.12, 8.4.27, 8.3.36 a 8.2.35.

## Proč samotné číslo verze nestačí

Pro PHP2Shell existuje jasný seznam opravených verzí. V praxi ale k chybnému odhadu vedou tři situace:

- **Více instalací:** Příkazová řádka ukazuje PHP 8.3, web ale běží přes pool s PHP 8.1.
- **Backporty:** Distribuce a poskytovatelé hostingu někdy nasazují opravy do stávajících balíčků. Plesk pak například dál zobrazuje 8.2.34, přestože je záplatováno.
- **Staré procesy:** Nové soubory leží na disku, běžící workeři ale pocházejí ještě z doby před aktualizací.

Pro vedení firem a netechniky pomáhá jednoduché pravidlo: nezeptejte se jen „Jakou verzi PHP máme?“, ale „Je PHP2Shell uzavřeno na všech serverech a podle čeho to poznáme?“. Spolehlivá odpověď obsahuje tři doklady: verzi nebo backport, stav balíčku a čas restartu.

Technická kontrola má proto tři kroky: verze, stav balíčku, běžící procesy. Příkazy níže jsou čistě čtecí. Názvy balíčků a služeb se liší podle distribuce, zdroje PHP a hostingového rozhraní; příklady vycházejí z PHP 8.3.

## Kontrola verze PHP na příkazové řádce

```bash
php -v                                  # verze příkazové řádky
ls /etc/php/ 2>/dev/null                # Debian/Ubuntu: nainstalované větve
php-fpm8.3 -v                           # verze binárky FPM (název se liší podle distribuce)
php -i | grep -E "^PHP Version|Server API|Loaded Configuration File"
```

U RHEL, AlmaLinux nebo Rocky se binárka FPM obvykle jmenuje `php-fpm`; u Software Collections nebo cizích zdrojů leží další verze ve vlastních cestách. Plesk a cPanel přinášejí vlastní instalace PHP, které existují vedle systémového PHP. Jak tam postupovat, popisujeme na stránkách [Plesk](https://phpsos.de/cs/server/plesk/) a cPanel.

Kterou verzi PHP web používá ve webovém kontextu, nejspolehlivěji uvidíte v konfiguraci poolu nebo VirtualHostu nebo v hostingovém rozhraní. Ukáže to i stránka phpinfo; zřizujte ji jen krátce, s ochranou přístupu a náhodným názvem a ihned ji poté smažte.

U sdíleného hostingu většinou nemáte přístup k příkazové řádce. Hostingové rozhraní pak ukazuje nastavenou verzi PHP pro každý web. Zda byl backport nasazen a restartován, tam ale zřídka stojí. Zde je spolehlivou cestou písemné potvrzení poskytovatele hostingu.

## Kontrola stavu balíčku a backportů

Stav balíčku ukazuje, co vaše distribuce skutečně dodala:

```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"
```

Pokud je v changelogu uvedeno některé z čísel CVE, je backport v nainstalovaném balíčku obsažen. Pokud záznam chybí, není to ještě důkaz zranitelnosti: někteří správci balíčků formulují changelogy jinak. Pak porovnejte verzi balíčku s bezpečnostními oznámeními své distribuce nebo se zeptejte poskytovatele. Vzor pro takový dotaz najdete na stránce [Jak se zeptat poskytovatele hostingu na stav záplat](https://phpsos.de/cs/ratgeber/hoster-patch-status-erfragen/).

Důležité: zkontrolujte každý nainstalovaný balíček PHP, ne jen první. Na serverech s více větvemi je často jedna záplatovaná a jiná ne.

## Běží nová verze skutečně?

Aktualizace je účinná až po restartu všech procesů PHP. Porovnejte dobu spuštění běžících procesů s časem aktualizace:

```bash
ps -o pid,lstart,cmd -C php-fpm8.3      # čas spuštění procesů FPM
systemctl status php8.3-fpm             # od kdy služba běží
needrestart -r l                        # Debian/Ubuntu, pokud je nainstalován: zobrazí zastaralé procesy
```

Pokud je doba spuštění před aktualizací, běží ještě staré procesy. U Apache s mod_php platí totéž pro procesy Apache. Jak čistě restartovat, popisuje stránka [Restart PHP-FPM a všech workerů](https://phpsos.de/cs/php2shell/php-fpm-neustart/).

> **Tip:**
> Výsledek si poznamenejte písemně: server, verze PHP, verze balíčku, CVE v changelogu ano či ne, čas restartu. Tuto poznámku budete potřebovat pro vedení, pojišťovnu a pozdější kontrolu stop.

## Zařazení výsledku

| Nález | Hodnocení |
|---|---|
| Oficiální verze 8.5.12, 8.4.27, 8.3.36 nebo 8.2.35, procesy restartovány | PHP2Shell uzavřeno |
| Starší číslo, čísla CVE v changelogu balíčku, procesy restartovány | Backport nasazen, uzavřeno |
| Starší číslo, žádný záznam v changelogu, žádné potvrzení | nejasné, ujasnit u poskytovatele |
| PHP 8.1 nebo starší bez potvrzeného backportu | otevřeno, nutná přechodná opatření a migrace |
| Procesy starší než aktualizace | chybí restart, zranitelnost je stále aktivní |

Pokud zůstane server ve stavu „nejasné“, zacházejte s ním jako s otevřeným: nastavte přechodná opatření a sledujte ujasnění, dokud nebude k dispozici doklad. Úplný přehled verzí najdete na stránce [Které verze PHP jsou postižené?](https://phpsos.de/cs/php2shell/betroffene-php-versionen/).

## Jak konkrétně pomáhá PHP SOS?

Prostřednictvím [služby záplatování PHP](https://phpsos.de/cs/leistungen/php-patch-service/) přebíráme kontrolu a doklad:

- **Najít všechny instalace,** i druhé verze z hostingových panelů, Software Collections nebo kontejnerů.
- **Vyhodnotit stav balíčku:** oficiální vydání, backport nebo otevřeno, s dokladem z changelogu nebo od poskytovatele.
- **Zkontrolovat restart,** dokud neběží žádný proces se starým kódem.
- **Vytvořit protokol kontroly,** který můžete použít interně i vůči třetím stranám.


## Časté dotazy

**Proč php -v ukazuje jinou verzi než můj web?**  
Na mnoha serverech je nainstalováno více verzí PHP. Příkazová řádka používá jednu z nich, webový server nebo pool FPM jinou. Zkontrolujte proto verzi, která skutečně běží ve webovém kontextu, například přes binárku FPM nebo hostingové rozhraní.

**Jak poznám backport?**  
U balíčků distribucí je oprava často uvedena v changelogu balíčku, zpravidla s číslem CVE. V Debianu a Ubuntu pomůže apt changelog, v systémech typu RHEL rpm -q --changelog. Pokud záznam chybí, ujasněte stav u poskytovatele.

**Mohu verzi PHP zkontrolovat v zákaznickém menu hostingu?**  
Ano, většina rozhraní zobrazuje nastavenou verzi pro každý web. Zda byl backport nasazen a restartován, tam většinou neuvidíte. K tomu je spolehlivou cestou písemné potvrzení poskytovatele hostingu.

## Zdroje

- [php.net: bezpečnostní oznámení](https://www.php.net/)
- [PHP 8 ChangeLog](https://www.php.net/ChangeLog-8.php)
- [php.net: podporované verze](https://www.php.net/supported-versions.php)
