Optimalizace WP | 8. Nefunkční web

Při aktualizaci, změnách nastavení nebo i vnějším zásahem může dojít k poškození webu, namísto vašeho obsahu se pak v prohlížeči nezobrazí nic nebo chybová hláška. Jak chybu poznat a jak web rychle uzdravit?

Před provedením jakéhokoli kroku si web důkladně zálohujte!

#1 | Prázdná stránka

Pokud místo vašeho webu vidíte jen prázdnou bílou stránku, doporučujeme v konfiguračním souboru wp-config.php na FTP aktivovat režim ladění. Pak by se měly zobrazit konkrétnější chyby s příčinou problému. Pro dohledání dalších chyb pokračujte ve čtení tohoto článku.

výchozí hodnota WP_DEBUG je false, pro zapnutí režimu ladění ji změňte na true

Po dokončení úprav nezapomeňte režim ladění opět vypnout změnou hodnoty na false.

define( 'WP_DEBUG', false ); 

#2 | Během připojování k databázovému serveru ….

… nebo alternativa ve vámi používaném jazyce. WordPress se nemůže připojit k databázi. Nejčastěji je to po změně databázových údajů bez jejich aktualizace v konfiguračním souboru.

takto WordPress hlásí, že se nemůže připojit k databázi

Údaje pro připojení k databázi se uchovávají na FTP v souboru wp-config.php. Pokud změníte heslo k databázi, je nutné jej změnit i zde. Údaje vypadají přibližně takto:

přístupové údaje k databázi, ohraničené apostrofy

Pozor na přebytečné mezery a překlepy.

v hesle je možné mít i mezeru, ale často se tam nečekaně vloudí – tato hesla nejsou totéž

Zkontrolujte, zda v konfiguračním souboru odpovídá nastavený prefix databáze s tím, který je u každé tabulky.

prefix databáze umožňuje mít více instalací WordPressu v jedné databázi, stačí je spárovat

#3 | Chyba pluginu nebo šablony

Chybová hláška může být různá (ukážeme si jednu z obvyklých) a většinou obsahuje i cestu k souboru. Pokud v textu chyby uvidíte /wp-content/plugins/ nebo /wp-content/themes/, jde velmi pravděpodobně havarovaný plugin či šablonu. Hned další část chyby vám prozradí, který plugin nebo šablona to je.

chybová hláška může být různá, důležité je zorientovat se a najít, kde poškození vzniklo

Pokud se dostanete do administrace /wp-admin, stačí plugin / šablonu vypnout. Administrace ale nemusí při havárii zůstat funkční, v tom případě se připojte na FTP a složku pluginu / šablony přejmenujte, třeba jako na screenshotu. Pokud nevíte přesně, který plugin zlobí, nebo je jich více, lze je vyřadit všechny najednou přejmenováním celé složky /wp-content/plugins

přejmenování adresáře dočasně vyřadí problémový plugin / šablonu z provozu

V tuto chvíli už pravděpodobně bude možné se přihlásit do administrace WordPressu a opravit chybu nebo znovu nainstalovat poškozený plugin.

#4 | Poškozené základní soubory WordPressu

K tomu dochází nejčastěji při nepovedené aktualizaci, napadení webu nebo neodborném zásahu. V chybové hlášce hledejte text /wp-includes/. To je složka na FTP, kde jsou základní soubory WordPressu, web bez nich nebude správně fungovat a nemělo by s nimi být neodborně manipulováno.

v chybové hlášce hledejte zmínku o adresáři wp-includes, který uchovává základní soubory WP

Možným řešením této poruchy je spustit aktualizaci (pokud je dostupná administrace WordPress) nebo stáhnout a rozbalit balíček se soubory WordPress, všechny je nahrát na FTP – nahradit všechny původní soubory. Pokud víte verzi WP (zjistíte v souboru /wp-includes/version.php), stáhněte si přímo tu, pokud nevíte, stáhněte nejnovější – zároveň tím provedete aktualizaci. FTP klient by vás měl upozornit na nahrazení souborů, to odsouhlaste. Uživatelských dat se to netýká, nahrazují se tím jen kritické soubory WordPressu. Přesto důsledně doporučujeme mít funkční zálohu.

#5 | Nekompatibilita verze PHP

Nekompatibilita webu s verzí PHP se může projevovat mnoha způsoby. Obvykle to může být hlášení o nedefinované funkci, kdy WordPress požaduje funkci PHP, která v používané verzi ještě nebo už není:

Fatal error: Call to undefined function nazevfunkce()

Může jít o chybějící rozhraní mysql (od PHP 7.0 už mysql není), nebo třeba tato hláška:

Warning: “continue” targeting switch is equivalent to “break”. Did you mean to use “continue 2”?

Zkuste změnit verzi PHP, ideálně na starší.

#6 | Přesměrování webu, napadený web

Velmi častý jev při napadení webu. Útočníkovi stačí změnit URL WordPressu a ten pak při načtení provede automatické přesměrování na škodlivou stránku. Často takových přesměrování proběhne mnoho v řadě, a skončíte na webu s vyskakovacími okny, který může nabízet nějakou soutěž a požadovat osobní informace. Nikdy tam nic nezadávejte a urychleně web opusťte.

Mohou to být očividně nepříliš užitečné domény typu http://app1111.nonameptr00.live/45687421642/ nebo naopak lépe vypadající https://reflex.worldtraffic.com/r.php – kromě špatné češtiny a škodlivého obsahu tam nic nečeká.

méně zkušení uživatelé takovému webu bohužel mohou důvěřovat

V této fázi už velmi pravděpodobně nebudete mít přístup do /wp-admin (pokud ano, jen ověřte, že je v Nastavení >> Obecné nastavena vaše doména). Proveďte kontrolu nastavení URL webu, v PHPMyAdmin v tabulce #_options. Na řádcích siteurl a home musí být uvedena jen vaše adresa webu, cokoli jiného je nesmysl.

URL webu zkontrolujte na obou řádcích, nemusejí být vždy řazené takto na začátku

Pokud po opravě stále přetrvává přesměrování, zkuste vyřadit všechny pluginy. Tj. jako v bodu #3 tohoto návodu, ale přejmenujte celou složku /wp-content/plugins. Pluginy pak doporučujeme raději nainstalovat znovu a vyhnout se neověřeným pluginům s malým množství recenzí.

#7 | Warning: include_once(): open_basedir restriction in effect

Zejména při přesunu webu mezi servery můžete narazit na podobnou chybovou hlášku.

Warning: include_once(): open_basedir restriction in effect. File(/data/web/virtuals/123456/virtual/www/domains/svatky.cz/wp-content/plugins/wp-super-cache/wp-cache-phase1.php) is not within the allowed path(s): (/data/web/virtuals/176164/virtual) in /data/web/virtuals/176164/virtual/www/domains/svatky.cz/wp-content/advanced-cache.php on line 22

Některé pluginy používají v konfiguračního souboru webu celou cestu, včetně ID webhostingu. Při změně webhostingu se pak snaží přistupovat do souborů na původním webhostingu, to ale není povolené. Nejprve je potřeba identifikovat, který plugin vykazuje chybu. Typicky to bývají cachovací pluginy, ale může se to stát i kdekoli jinde. Chybová hláška by měla příčinu napovídat.

přečtením chyby poznáte, že příčinou je v tomto případě cachovací plugin

Zkuste některý z úryvků chyby najít v konfiguračním souboru WordPressu, obvykle je to soubor wp-config.php. Do jiných souborů se obvykle příliš nezasahuje. Pokud ve wp-config.php žádnou stopu nenajdete, zkuste problémový plugin restartovat nebo přeinstalovat.

plugin si uložil celou cestu k adresáři, po změně webhostingu už cesta neplatí

Pokud se podařilo identifikovat zdroj problému a najít i konkrétní řádek s neplatným údajem, oprava je už velmi jednoduchá a napovídá ji přímo chybová hláška.

zelená cesta je správně, červená je špatně, když se neshodují = chyba open_basedir

Přepište cestu k adresáři na správnou a uložte. Stránku aktualizujte pomocí Shift + F5, tím se zbavíte cache a oprava by se měla projevit.

nezapomeňte upravený soubor nahrát na FTP a web pak aktualizujte pomocí Shift + F5