Problém s aktualizací zasekla se na – rozbalování aktualizačního balíčku

Pokud pomineme napadení webu, tak s nejhoršími problémy se potkáte většinou při nepovedené aktualizaci. Což je také jeden z důvodů proč na vás při každé doslova svítí nápis, abyste si vše nejdříve zazálohovali. Dneska se podíváme jak vyřešit zamrznutou aktualizaci.

Rozbalování aktualizačního balíčku

V rámci automatické aktualizace je nejdříve z repositáře na WordPress.org stažen zazipovaný soubor s jádrem, pluginem anebo šablonou. Následně je rozbalen a provede se aktualizace. Při rozbalování se ve zvláštních případech můžete potkat s problémem, kdy vše zamrzne.

Existují tři reálné možnosti a jedna teoretická.

  1. PHP nebude mít dostatek volné paměti pro dokončení operace
  2. Vyprší čas pro běh skriptu
  3. Stažený soubor bude poškozený
  4. Chyba bude někde na straně serveru

Nedostatek paměti poznáte podle chybové zprávy, která bude vypadat nějak následobně: Allowed memory size of …. bytes exhausted (tried to allocate … bytes)). Zde je řešením vypnout všechno nepotřebné (pluginy, přepnout na základní šablonu) a modlit se ať to běhu skriptu bude stačit. Pokud ne, je třeba navýšit paměť anebo použít manuální instalaci, viz. Níže.

Vypršení času pro běh skriptu je u WordPress také reálný. Některé freehostingy anebo levné webhostingy drží hodnotu max_execution_time na 10 vteřinách, což u větších souborů může dělat problém. Řešení je zde navýšení limitu, pokud je to možné, anebo manuální instalace. Pro WordPress však takto nízké limity pro běh skriptu nejsou vhodné. Pod 30 vteřin nechoďte a vyberte si radši konkurenci. Nabídek je dostatek.

Stažený soubor je poškozený. Tohle by se stávat nemělo ale prostě může. Data souboru se nějakým záhadným způsobem mohou poškodit při přenosu anebo rovnou na disku. Opakujte aktualizaci později. Popřípadě proveďte manuální.

Případná chyba na serveru je teoreticky možná, i když spíše nepravděpodobná. Osobně jsem se s tím nikdy nesetkal, ale je dobré myslet i mimo rozsah PHP. Třeba odchází fyzický disk anebo je nějak poškozený souborový systém.

Manuální instalace

Řešením zamrznutí aktualizace je manuální instalace. Moc článků se jí nevěnuje, protože je daleko jednodušší provést aktualizaci na jedno kliknutí. K manuální instalaci budete k tomu potřebovat zabalený plugin, který si můžete stáhnout z repositáře na svůj počítač. Bude zazipovaný a je třeba jej pomocí nějakého programu na dekompresi dat rozbalit. Výsledkem by měl být adresář s názvem plugiu plný souborů. Dále musíte mít způsob jak jej dostat na váš webhosting, ideálně přes FTP klienta (stačí Total Commander). Přihlašovací údaje k FTP (adresu serveru, login a heslo). Pokud je nemáte, zjistěte si je na zákaznické podpoře vašeho poskytovatele hostingu, kde vás navedou. Přinejhorším vám vygenerují nové.

  • Rozbalte stažený plugin na svém počítači.
  • Deaktivujte plugin ve WordPress
  • V Total Commander dejte CRL + F.
  • Nové připojení.
  • Název relace – WordPress, Hostitel (adresa serveru), Jméno uživatele (login k FTP), Heslo (heslo k FTP). Pak klikněte na OK. Teď stačí kliknout na připojit.

ftp-total-commander

  • Najděte adresář s vaší instalací WordPress. Většinou je ve www/vašedomena.tld/. Běžte do adresáře wp-content/plugins/ tam uvidíte adresáře všech nainstalovaných pluginů.
  • Nejdříve si jej zazálohujte, pokud by se něco pokazilo.
  • Nyní obsah adresáře s názvem pluginu smažte. Nemusíte se bát všechna nastavení pluginu jsou uložena v databázi MySQL. Tedy pokud postupoval autor pluginu tak jak se má
  • Nahrajte do prázdného adresáře všechny soubory nového pluginu.
  • Aktivujte plugin ve WordPress.

 

Pokud vše proběhlo správně, tak je plugin aktualizovaný a připravený k použití.

Autor Ginoza

Pracuji na zákaznické podpoře jednoho známého webhostingu.

Připojte se k diskuzi

2 komentáře

  1. Dobrý den,
    mám problém s tím, že na nejnovější verzi wordpressu (4.6.1) mi nejdou zobrazit a ani editovat pluginy. mohu je nainstalovat, ale už je nemohu aktivovat. Pouze se mi objeví hláška:

    Fatal error: Call to undefined function wp_is_large_network() in /users/zalohovane/41123/jirihornek.cz/www/wp/wp-content/plugins/wpmu-plugin-stats/wpmu-plugin-stats.php on line 262

    Nevíte, v čem je problém? Děkuji. Jiří Hornek

    1. Plugin wpmu-plugin-stats volá funkci wp_is_large_network(), která je běžně součástí instalace WordPress (wp-includes/ms-functions.php). Zkusil bych tento soubor najít a zjistit jestli tam je. Pokud ano, tak je chyba s pluginem a vypnul bych jej.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *