Problémy s automatickou aktualizací WordPressu se objevují nejen u českých hostingů, ale všude na světě. Je mnoho různých nastavení serverů a pro vývojáře tak není vůbec jednoduché, aby vše správně fungovalo všude. Situace se sice s verzí 2.8 trochu zlepšila, ale neustále se setkáváme s někým, komu tato příjemná funkce nefunguje (velmi často jde o nekvalitní freehostingy). Málokdo ale ví, že jde pokročilým nastavením (a případně i domluvou s hostingem) mnohé zachránit. Přinášíme tak několik příkladů, jak podobný problém vyřešit.
Jeden z tazatelů naší podpory měl s automatickými aktualizacemi také problém a sám nabízel vysvětlení nefunkčnosti, když „měl hlavní adresář uložen jinde než ho WordPress hledá“. Není však přímo problém v tom, že je WordPress nainstalován v podadresáři, ale v tom, že na některých serverech se projevuje chyba WordPressu, kdy nesprávně vyhodnotí umístění WordPressu, pokud má FTP uživatel nastaven jiný hlavní adresář (root) než ten s WordPressem.
1) V tomto konkrétním případě spočíval problém částečně opravdu v tom, že FTP účet (uživatel) má nastaven jako svůj hlavní adresář (root), ale už se tam nenachází WordPress, který je v např. v nějakém podadresáři. Jedno z řešení je vytvořit nový FTP účet (uživatele) pouze pro tuto instalaci WordPressu, nastavit mu jako hlavní adresář (root) právě adresář s WordPressem a až se automatická aktualizace optá na FTP přístup, tak je třeba tam zadat právě tento účet (podrobnosti o celém problému naleznete zde). Často si ale na hostingu nemůžete vytvářet nové FTP účty, takže tu máme jiné řešení, které lze použít jednoduše vložením následujícího kódu na konec souboru wp-config.php:
if(is_admin()) {
add_filter('filesystem_method', create_function('$a', 'return "direct";' ));
define( 'FS_CHMOD_DIR', 0751 );
}
Tento problém obvykle poznáte podle následujících chybových hlášek (anglicky / česky):
Unable to locate WordPress Content directory (wp-content). / Nepodařilo se najít adresář WordPressu s uživatelským obsahem (wp-content).
Installation Failed / Instalace se nezdařila
2) Druhý častý problém je neustálé zadávání přístupových údajů k FTP. Tohoto „obtěžování“ se lze zbavit také jednoduše, a to opět přidáním následujích informací do wp-config.php:
define("FTP_HOST", "hostitelsky_server"); // Zde je třeba doplnit server.
define("FTP_USER", "uzivatelske_jmeno"); // Zde je třeba doplnit uživatelské jméno.
define("FTP_PASS", "heslo"); // Zde je třeba doplnit heslo.
define("FS_METHOD", "direct");
3) Velmi zajímavý je i třetí problém, kdy anglická verze WordPressu automaticky aktualizovat jde, ale česká už nikoliv. Pluginy jdou také aktualizovat v pořádku. Takže určitě vyzkoušejte aktualizovat jen anglickou verzi. Nejsme si zcela jisti správným řešením, ale většinou se tento problém objevuje při nedostatečné hodnotě paměti (memory_limit), která by měla být alespoň 32 MB (obvykle se chyba ukazuje, když je pouze 24 MB). Paměť můžete zkusit navýšit přes wp-config.php, pomocí .htaccess, ale většinou je jediným možným řešením komunikace s hostingem a žádost o navýšení. Česká verze je trochu větší než anglická (obsahuje lokalizační soubory ve dvou formátech), takže předpokládáme, že to s pamětí prostě o kousek nevyjde.
4) Další problém nastává s restriktivním nastavením open_basedir, které poznáte obvykle podle chybové hlášky během aktualizace, která obsahuje větu „Warning: file_exists() [function.file-exists]: open_basedir restriction in effect“. V tomto případě je třeba opět zasáhnout do souboru wp-config.php a přidat následující kód (podrobnosti):
define('WP_TEMP_DIR', ABSPATH . 'wp-content/tmp');
5) Automatická aktualizace také nemusí fungovat, pokud máte nízký memory_limit (doporučeno je alespoň 32 MB, pokud máte méně, tak požádejte hosting o navýšení), nebo nedostatečné místo na hostingu (balíček WordPressu po rozbalení zabere téměř 10 MB, takže by mělo být na FTP raději alespoň 20 MB volného místa).
6) Poměrně častý problém se objevuje u mnohých freehostingů, kde je zapnutý safe_mode patrně ještě v kombinaci s nějakým jiným bezpečnostním opatřením. Jednou z možností je tady zkusit požádat hosting o vypnutí safe_mode, přejít na placený hosting (který by to už umožňovat měl) nebo prostě aktualizovat pluginy ručně prostřednictvím FTP (stáhnout plugin, rozbalit ho a nahrát do příslušné složky v adresáři wp-content/plugins), což je však pěkná otrava. Obvykle se v těchto případech objevuje některá z následujících chyb:
Warning: touch() [function.touch]: SAFE MODE Restriction in effect. The script whose uid is 12345 is not allowed to access...
V případě výše uvedené chyby však máte ještě poměrně velkou šanci na zprovoznění, návod naleznete v našem fóru.
Objevil se u vás nějaký jiný problém s automatickou aktualizací? Zanechte zde komentář, nebo použijte naše fórum, kde se ho s vámi pokusíme vyřešit…












Dobrý den.
Při aktualizaci mi to hází hlášku:
Nápověda
Aktualizace WordPressu
Aktualizace je stahována z http://cs.wordpress.org/wordpress-3.2.1-cs_CZ.zip…
Stažení se nezdařilo.: Cílový adresář pro streamování souboru patrně neexistuje nebo do něj není možné zapisovat.
Instalace se nezdařila
Děkuji za radu
[...] Shrnující článek k tomuto problému si můžete přečíst na našem webu. [...]
[...] aktualizací WordPressu)? Potom to bude klasický problém s automatickou aktualizací, viz náš přehled problémů (váš příklad je hned bod 1). Vyzkoušejte a dejte vědět, zda něco pomohlo. Pokud ne, tak [...]