# Server Plesk: kontrola verzí PHP a záplatování

> Plesk aktualizace PHP po PHP2Shell: jak zkontrolovat handlery, stav balíčků a backporty, restartovat všechny služby PHP-FPM a záplatu řádně doložit.

Zdroj: https://phpsos.de/cs/server/plesk/  
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ě:** Aktualizace PHP v Plesku je dokončena teprve tehdy, když je každá nainstalovaná verze PHP na opraveném stavu, všechny služby PHP-FPM byly restartovány a vy to dokážete doložit stavem balíčků a časem spuštění procesů. Samotné číslo verze zobrazené v panelu k tomu nestačí, protože backporty ho často nechávají beze změny.

## O co jde u PHP2Shell na serverech Plesk

PHP2Shell označuje dvě kritické zranitelnosti v samotném PHP (CVE-2026-109618 a CVE-2026-109619, každá CVSS v4.0 9,2). Umožňují útočníkům spustit na serveru kód bez přihlášení. Postiženy jsou mimo jiné PHP-FPM a Apache s mod_php, tedy právě ty provozní režimy, které Plesk pro weby nastavuje.

Dne 21. 10. 2026 projekt PHP vydal opravené verze 8.5.12, 8.4.27, 8.3.36 a 8.2.35. Pro PHP 8.1 a starší už oficiální aktualizace neexistují. Servery Plesk mají jednu zvláštnost: často na nich vedle sebe běží několik verzí PHP, částečně od samotného Plesku, částečně od operačního systému. Každá z nich vyžaduje vlastní kontrolu.

> **Důležité:**
> Aktualizace v panelu nahradí soubory na disku. Dokud v paměti běží staré procesy PHP, zůstává zranitelnost otevřená. Bez restartu všech workerů není záplata účinná.

## Aktualizace PHP v Plesku: nejdřív zjistit stav

Než cokoli aktualizujete, sestavte si seznam všech handlerů PHP a domén, které je používají. Jde to přes panel (Nástroje a nastavení, Nastavení PHP) nebo z příkazové řádky. Následující příkazy nic nemění, jen čtou.

```bash
# Všechny registrované handlery PHP s verzí a cestou
plesk bin php_handler --list

# Verze každé PHP nainstalované Pleskem (cesta jako příklad)
for p in /opt/plesk/php/*/bin/php; do echo "$p"; "$p" -v | head -1; done
```

U každého handleru si poznamenejte: verzi, provozní režim (FPM, FastCGI, modul Apache) a počet domén. Handler bez domény není důvodem k úlevě. Může být později přiřazen nebo běžet na testovacích subdoménách.

## Kontrolovat stav balíčků, ne zobrazení

Plesk zobrazuje číslo verze, které PHP samo hlásí. Pokud Plesk nebo distribuce dodá opravu jako backport, může tam dál stát například 8.2.34, i když je oprava obsažena. A naopak může aktuálně vypadající číslo klamat, pokud balíček ještě nebyl aktualizován. Rozhodující jsou nainstalovaný stav balíčku a písemné potvrzení poskytovatele.

```bash
# Debian/Ubuntu (názvy balíčků jako příklad)
dpkg -l | grep -E 'plesk-php|php[0-9.]+-(fpm|cli)'

# AlmaLinux/Rocky/RHEL (názvy balíčků jako příklad)
rpm -qa | grep -E 'plesk-php|^php' | sort
```

Porovnejte verze balíčků s údaji v changelozích Plesku a s oznámeními vaší distribuce. Pokud tam není jednoznačně zdokumentováno, že CVE-2026-109618 a CVE-2026-109619 jsou opraveny, zeptejte se poskytovatele. Vzor najdete na stránce [Zeptejte se hostingu na stav záplat](https://phpsos.de/cs/ratgeber/hoster-patch-status-erfragen/).

## Nasadit aktualizaci a restartovat všechny workery

Samotná aktualizace probíhá přes instalátor Plesku nebo správu balíčků systému. Poté následuje krok, který chybí nejčastěji: restart. Každá verze PHP má v Plesku vlastní službu FPM. Restartujte všechny, ne jen tu pro hlavní doménu.

```bash
# Vypsat všechny služby PHP-FPM (názvy služeb jako příklad)
systemctl list-units --type=service | grep -i 'php.*fpm'

# Restartovat po jednotlivých službách, např.:
systemctl restart plesk-php84-fpm

# Zkontrolovat čas spuštění běžících procesů PHP
ps -eo pid,lstart,cmd | grep -E 'php-fpm|php-cgi' | grep -v grep
```

Pokud doména běží na Apache s mod_php, restartujte Apache úplně. Pokud je čas spuštění procesu PHP před aktualizací, proces ještě nebyl obnoven. Více k tomuto kroku najdete na stránce [Restart PHP-FPM a všech workerů](https://phpsos.de/cs/php2shell/php-fpm-neustart/).

## Přechodná ochrana, dokud aktualizace chybí

Pokud pro některou verzi záplata zatím není k dispozici, doporučuje php.net přechodná opatření. Nejsou úplnou ochranou. V Plesku nastavujete hodnoty, které aplikace nesmějí přepsat, jako `php_admin_value` v dodatečných direktivách FPM domény nebo serverově v php.ini příslušné verze.

```ini
; Příklad dodatečných direktiv PHP-FPM v Plesku
php_admin_value[session.upload_progress.enabled] = 0
php_admin_value[post_max_size] = 8M
php_admin_value[upload_max_filesize] = 6M
```

Při nahrávání souborů je podle php.net určeno `post_max_size = 32M` a `upload_max_filesize` níže. Na PHP 8.5 přibývá `fatal_error_backtraces=0`. Omezení paměti pomocí `memory_limit=-1` se smí nasadit jen společně s limitem na úrovni kontejneru nebo cgroup. Poté následuje opět restart všech workerů. Podrobnosti najdete na stránce [Okamžitá opatření bez záplaty](https://phpsos.de/cs/php2shell/sofortmassnahmen-ohne-patch/). BSI (německý Spolkový úřad pro informační bezpečnost) doporučuje webové servery dočasně odpojit od sítě, pokud aktualizace není okamžitě možná.

## Po záplatě: zajistit logy a hledat stopy

Záplata uzavírá zranitelnost do budoucna. Neodstraní škodlivý software, který byl zavlečen dříve, a nedokládá, že se nic nestalo. Proto uchovejte logy webového serveru od 20. 10. 2026. Plesk je ukládá pro každou doménu do adresáře `logs`; v této situaci dobu uchovávání nekraťte.

Dávejte pozor na nové nebo změněné soubory PHP v adresářích pro nahrávání, neznámé plánované úlohy a nové administrátorské účty. Zveřejněné, potvrzené indikátory kompromitace (Indicators of Compromise) zatím neexistují; detekce spočívá na analýze chování. Pokud najdete cokoli nápadného, nepokračujte na vlastní pěst, ale nejdříve zajistěte stav systému.

## Jak konkrétně pomáhá PHP SOS?

- Zmapujeme všechny handlery PHP na vašem serveru Plesk, přiřadíme k nim domény a zkontrolujeme skutečný stav balíčků pro každou verzi.
- V rámci naší [služby záplatování PHP](https://phpsos.de/cs/leistungen/php-patch-service/) nasadíme aktualizace, restartujeme všechny služby a časy spuštění procesů zdokumentujeme jako doklad.
- Kde záplata chybí, nastavíme přechodná opatření podle php.net serverově a tak, aby je nešlo přepsat.
- Zajistíme logy a hledáme stopy kompromitace, při nálezu pomocí [reakce na incidenty](https://phpsos.de/cs/leistungen/incident-response/).
- Poté server trvale zabezpečíme a odstraníme nepotřebné verze PHP.


## Časté dotazy

**Proč Plesk po aktualizaci stále zobrazuje PHP 8.2.34?**  
Distribuce a poskytovatelé někdy nasazují bezpečnostní opravy jako backport, aniž by změnili číslo verze. Rozhodující je pak stav balíčku a potvrzení poskytovatele. Samotné zobrazení neprokazuje ani záplatu, ani její absenci.

**Stačí v panelu Plesk kliknout na Aktualizovat?**  
Aktualizace uloží nové soubory, ale běžící procesy PHP dál pracují se starým kódem v paměti. Nový stav je aktivní teprve po restartu všech služeb PHP-FPM a webového serveru. Poté zkontrolujte čas spuštění procesů.

**Musím záplatovat i verze PHP, které žádná doména nepoužívá?**  
Ano, pokud zůstávají nainstalované. Nepoužívaný handler může být později omylem přiřazen nebo dosažitelný přes testovací prostředí. Verze, které nepotřebujete, je lepší odinstalovat úplně.

**Pomůže proti PHP2Shell aktualizace WordPressu v Plesk Toolkitu?**  
Ne. PHP2Shell se týká samotného PHP, nikoli CMS. Aktualizace CMS je přesto užitečná, tuto zranitelnost ale neuzavře.

## 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)
- [BSI](https://www.bsi.bund.de/)
