Přejít na obsah

Nastavení cookies

Zvolte, které druhy cookies povolíte. Svou volbu můžete kdykoli změnit přes Nastavení cookies v dolní části každé stránky. Prohlášení o ochraně osobních údajů

Nezbytné

Vždy zapnuté

Potřebné pro přihlášení, uchování košíku a zapamatování vašich voleb. Jsou vždy zapnuté.

Které cookies?
  • weboke_sessie, weboke_klant, weboke_remember: vaše relace a trvalé přihlášení
  • weboke_basket: váš košík
  • wkBtwIncl: zobrazení cen s DPH nebo bez DPH
  • wok_cookies: vaše volba cookies, 12 měsíců

Měří, která reklama vede k návštěvě nebo objednávce, abychom neplatili za reklamy, které nic nepřinášejí.

Které cookies?
  • Google Ads přes Google Tag Manager (_gcl_au, _gcl_aw), až 90 dní
  • OpenAI Ads, reklamy v ChatGPT
  • wok_aff: partner, který vás k nám doporučil (partnerský program), 60 dní

4,6

Země a jazyk

Každá země má vlastní web s cenami a DPH dané země.

Zobrazit

Méně je více: úklid a řešení konfliktů

Modul 5: Šablony a pluginy · Doba čtení: 9 minut

Cíl lekce: Po této lekci dokážete uklidit pluginy a sami najít a vyřešit konflikt nebo bílou stránku.

Klíčové pojmy: deaktivace vs. odstranění, neaktivní kód, kritická chyba, režim obnovení (recovery mode), Stav webu, režim řešení problémů, přejmenování složky pluginu, WP_DEBUG, WP_DEBUG_LOG, debug.log, chybový log

Vypnout neznamená vyhodit

V části Pluginy můžete plugin deaktivovat nebo odstranit. Rozdíl:

  • Deaktivovat: WordPress plugin už nenačítá. Soubory ale zůstávají v wp-content/plugins/ a často je lze stále přímo vyvolat přes webový server. Pokud je v samostatném PHP souboru tohoto pluginu bezpečnostní díra, pořád tam je. Útočníci hledají známé zranitelné soubory, ne aktivní pluginy.
  • Odstranit: soubory zmizí. Některé pluginy při odstranění uklidí i svá nastavení a tabulky v databázi, jiné je tam nechají.

Pokud plugin už nepoužíváte, odstraňte ho. Deaktivace je jen na chvíli (při hledání problému). Totéž platí pro šablony (lekce 2.4).

Úklid: pravidelná kontrola

Jednou za čtvrtletí (lekce 9.4) projděte své pluginy. U každého pluginu:

  1. K čemu slouží? Pokud už to nevíte, zjistěte to. Často se ukáže, že byl plugin kdysi nainstalován kvůli jediné věci a nikdy nebyl odebrán.
  2. Používá se ještě? Plugin pro slider, přestože nikde žádný slider není, nebo plugin pro formuláře, přestože Vaše kontaktní stránka používá jiný formulář.
  3. Obejdete se bez něj? Umí to už WordPress, šablona nebo jiný plugin (lekce 5.3)?
  4. Je ještě udržovaný? Kdy byl naposledy aktualizován, je stále v adresáři pluginů?

Úklid proveďte nejdříve v testovacím prostředí (staging) (lekce 8.3), nebo si aspoň vytvořte zálohu, a odstraňujte vždy jen jeden plugin, abyste věděli, co způsobilo problém, pokud se něco pokazí. Dávejte pozor na shortcody: pokud odstraníte plugin, který poskytoval [formular id="2"], zobrazí se tento text potom doslova na Vaší stránce.

Když se něco pokazí: kritická chyba

Po aktualizaci, instalaci nového pluginu nebo upgradu PHP najednou uvidíte:

Na webu se vyskytla kritická chyba.

nebo úplně bílou stránku. To znamená, že PHP skončilo s fatální chybou dřív, než vznikla stránka (lekce 1.2). Většinou je příčinou plugin nebo šablona, která nespolupracuje s něčím jiným: s jiným pluginem, s novou verzí WordPressu nebo s verzí PHP.

Od verze WordPress 5.2 udělá WordPress v takové situaci dvě věci:

  • pošle e-mail na adresu administrátora s informací, který plugin nebo která šablona chybu způsobila, a se speciálním odkazem;
  • pomocí tohoto odkazu se přihlásíte v režimu obnovení (recovery mode): administrace pak funguje a plugin, který chybu způsobil, je dočasně vypnutý, takže ho můžete aktualizovat, nahradit nebo odstranit.

Proto je tak důležité mít administrátorskou adresu, kterou opravdu čtete (lekce 2.2).

Hledání na vlastní pěst: postup

Nepřišel e-mail, nebo nefunguje režim obnovení? Takto příčinu najdete sami.

1. Podívejte se do chybového logu

Chyba je téměř vždy zapsaná v chybovém logu webového serveru nebo PHP. V DirectAdminu ho najdete u logů své domény. Hledáte řádek s PHP Fatal error a časem Vašeho pokusu:

PHP Fatal error:  Uncaught Error: Call to undefined function create_function()
in /home/uzivatel/domains/example.com/public_html/wp-content/plugins/stary-slider/slider.php:42

Cesta Vám prozradí viníka: zde plugin ve složce stary-slider. Zbytek řádku říká proč (zde: funkce, která byla v PHP 8 odstraněna, lekce 8.4).

2. Zapněte debug log (ne zobrazování na obrazovce)

Pokud v chybovém logu nic užitečného není, vložte do wp-config.php (nad řádek „To je vše, dále needitujte!“, v anglické verzi „stop editing“):

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

WordPress pak zapisuje všechny chyby do wp-content/debug.log, aniž by je zobrazoval návštěvníkům. Nenechávejte to zapnuté déle, než je nutné: debug.log leží ve složce, kterou webový server zpřístupňuje, a kdo zná adresu, může ho přečíst. Jsou v něm cesty, někdy uživatelská jména a další informace, které útočníkovi pomohou. Po hledání ho opět vypněte a debug.log smažte. Nebo nechte WordPress zapisovat log mimo webový adresář tím, že u WP_DEBUG_LOG zadáte cestu (například '/home/uzivatel/logs/wp-debug.log', pokud to Váš hostingový poskytovatel umožňuje). V lekci 7.4 zkontrolujete, že debug.log není veřejně dostupný.

3. Vypnutí pluginu bez administrace

Pokud se nedostanete do administrace, vypněte podezřelý plugin tím, že jeho složku přejmenujete, přes Správce souborů nebo SFTP:

wp-content/plugins/stary-slider   přejmenovat na   wp-content/plugins/stary-slider-vyp

WordPress pak plugin nenajde a vypne ho. Pokud nevíte, o který jde, přejmenujte celou složku plugins na plugins-vyp: vypnou se všechny pluginy. Pokud web pak funguje, vytvořte novou prázdnou složku plugins, vracejte pluginy zpět jeden po druhém a po každém pluginu zkontrolujte, zda se chyba vrátila. Pro šablonu platí totéž: přejmenujte složku aktivní šablony a WordPress se vrátí k výchozí šabloně, pokud je ještě nainstalovaná (lekce 2.4).

4. Konflikty bez fatální chyby

Ne každý problém je kritická chyba. Někdy nefunguje jen jedna funkce: tlačítko nic nedělá, formulář se neodešle, editor se načte jen napůl. Pak jde často o konflikt mezi dvěma pluginy nebo mezi pluginem a šablonou. K tomu se hodí oficiální plugin Health Check & Troubleshooting: v režimu řešení problémů vypne pouze pro Vaši relaci všechny pluginy a přepne na výchozí šablonu, zatímco návštěvníci normálně vidí běžný web. Potom je zapínáte jeden po druhém, dokud se problém nevrátí.

Podívejte se také do konzole svého prohlížeče (F12): chyby JavaScriptu často uvádějí soubor, a tím i plugin.

Stav webu

V části Nástroje > Stav webu WordPress sám kontroluje Váš web: zastaralou verzi PHP, neaktivní pluginy a šablony, chybějící rozšíření PHP, nefunkční REST API nebo naplánované úlohy, které se zpožďují. Na kartě Informace najdete všechny údaje o své instalaci (verze, cesty, nastavení PHP). Tuto kartu můžete zkopírovat a přiložit, když žádáte o pomoc. Po každé větší změně se sem krátce podívejte.

Shrnutí

  • Deaktivace soubory ponechá; pluginy a šablony, které nepoužíváte, odstraňte.
  • Uklízejte každé čtvrtletí, vždy jeden plugin, se zálohou nebo v testovacím prostředí (staging).
  • Při kritické chybě pošle WordPress e-mail s odkazem do režimu obnovení.
  • Chybový log nebo debug.log uvádí cestu k viníkovi; po hledání debug opět vypněte, jinak je debug.log veřejně dostupný.
  • Bez administrace vypnete plugin přejmenováním jeho složky; konflikty hledáte v režimu řešení problémů.

Kvíz

1. Proč deaktivovaný plugin není úplně bezpečný?



2. Váš web zobrazuje „Na webu se vyskytla kritická chyba“ a nemůžete se přihlásit. Jaký je nejrychlejší první krok?



3. Proč nastavíte WP_DEBUG_DISPLAY na false, když na ostrém webu zapínáte WP_DEBUG?



4. Jak vypnete plugin, když se nedostanete do administrace?



Úkol

Úkol A5.4: Není Váš debug log veřejně dostupný? Zadejte adresu svého webu a pomocí kódu, který Vám úkol vygeneruje, prokažte, že jde o Váš vlastní web (záznam TXT nebo malý soubor). Program si vyžádá /wp-content/debug.log: v pořádku je, když neexistuje nebo je přístup odepřen (404 nebo 403). Pokud program dostane zpět soubor, je výsledek červený. Kromě toho program spočítá, kolik různých složek pluginů se vyskytuje v HTML Vaší domovské stránky (pouze pro informaci).

Úkol A5.4: Není Váš debug log veřejně dostupný?

Tato kontrola si vyžádá cesty, které necháte zkontrolovat jen u svého vlastního webu. Nejprve klikněte na "Zobrazit můj kód" a tento kód vložte jako TXT záznam na _weboke-cursus.<vaše doména> nebo jako soubor na svém webu (viz vysvětlení u kódu).


Co vyplníte a co zjistíme, neukládáme. Váš prohlížeč si pamatuje Vaše odpovědi a to, zda jste úkol splnili. Pokud jste přihlášeni, ukládáme v sekci Moje kurzy pouze to, že jste úkol měli (téměř) správně; i to tam můžete odstranit.

Úkol D5.4: Uklidit si seznam pluginů. Sepište si všechny své pluginy (aktivní i neaktivní): název, k čemu slouží, zda jsou ještě potřeba (ano/ne), alternativa bez pluginu. Odstraňte (po vytvoření zálohy nebo v testovacím prostředí) pluginy, které už nepotřebujete, vždy jeden, a po každém odstranění zkontrolujte, zda web stále funguje. Vyplňte, kolik pluginů jste měli a kolik jich zbylo, a poznamenejte si, zda zůstaly shortcody, které jste museli uklidit.

Úkol D5.4: Uklidit si seznam pluginů

Tento úkol provádíte sami; nikdo ho nekontroluje. Odškrtněte, co jste udělali, a označte úkol jako splněný.



Vaše zaškrtnutí a poznámky zůstávají pouze v tomto prohlížeči; nikam je neposíláme. Pokud jste přihlášeni, ukládáme v sekci Moje kurzy pouze to, že jste úkol splnili.

Další čtení

Tyto články popisují postup v panelech WebOké; v jiných panelech to funguje podobně.

Chvíli strpení…

Nastavení vašich domén

U každé domény nastavte jmenné servery, propojení s hostingem a to, kdo bude držitelem.

Načítání vašich domén…