<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Chyby a problémy &#8211; WordPress</title>
	<atom:link href="https://wordpress.bool.cz/category/chyby-a-problemy/feed/" rel="self" type="application/rss+xml" />
	<link>https://wordpress.bool.cz</link>
	<description>Jak na WordPress, návody, postupy a řešení chyb</description>
	<lastBuildDate>Fri, 19 May 2023 23:05:01 +0000</lastBuildDate>
	<language>cs</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.9.7</generator>

<image>
	<url>https://wordpress.bool.cz/wp-content/uploads/sites/4/2023/05/cropped-wordpress-logo-32x32.png</url>
	<title>Chyby a problémy &#8211; WordPress</title>
	<link>https://wordpress.bool.cz</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WordPress a set_time_limit()</title>
		<link>https://wordpress.bool.cz/wordpress-a-set_time_limit/</link>
					<comments>https://wordpress.bool.cz/wordpress-a-set_time_limit/#respond</comments>
		
		<dc:creator><![CDATA[ChATriX]]></dc:creator>
		<pubDate>Fri, 19 May 2023 23:05:00 +0000</pubDate>
				<category><![CDATA[Chyby a problémy]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[set_time_limit()]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://wordpress.bool.cz/?p=153</guid>

					<description><![CDATA[WordPress je nejpopulárnější obsahový management systém (CMS) na světě. Přestože je extrémně uživatelsky přívětivý a nabízí širokou škálu funkcí, také přichází s řadou výzev. Jednou z nich je správa času vykonávání skriptů, kde funkce set_time_limit() hraje klíčovou roli. Tento článek se zabývá funkcí set_time_limit(), jejím vlivem na WordPress a jak řešit problémy, které může způsobit ..<div class="clear-fix"></div><a href="https://wordpress.bool.cz/wordpress-a-set_time_limit/" title="přečtěte si více...">Pokračovat ve čtení</a>]]></description>
										<content:encoded><![CDATA[
<p>WordPress je nejpopulárnější obsahový management systém (CMS) na světě. Přestože je extrémně uživatelsky přívětivý a nabízí širokou škálu funkcí, také přichází s řadou výzev. Jednou z nich je správa času vykonávání skriptů, kde funkce <code>set_time_limit()</code> hraje klíčovou roli. Tento článek se zabývá funkcí <code>set_time_limit()</code>, jejím vlivem na WordPress a jak řešit problémy, které může způsobit její nízká hodnota.</p>



<span id="more-153"></span>



<h2>Co je set_time_limit()</h2>



<p>Funkce <code>set_time_limit()</code> je vestavěná PHP funkce, která nastavuje počet sekund, po který je skript může běžet. Pokud je zadaná hodnota 0, skript běží neomezeně dlouho, což není doporučené pro většinu webových aplikací, včetně WordPressu. Tato funkce se používá hlavně k zajištění toho, aby dlouho běžící skripty nezablokovaly servery nebo nezpomalily výkon webu.</p>



<h2>Kam se funkce set_time_limit() umísťuje</h2>



<p>Funkce <code>set_time_limit()</code> se v PHP kódu obvykle umisťuje na začátek skriptu. Pokud chcete upravit limit pro celý WordPress pak umístěte kód do <strong>wp-config.php</strong>. Není to však podmínkou.</p>



<p>V případě WordPressu existují různá místa, kde může být tato funkce použita, ale obecně platí, že by měla být umístěna tam, kde je nejvíce potřeba. Například, pokud je problém s nahráváním velkých souborů, může být funkce umístěna do skriptu, který zpracovává nahrávání souborů.</p>



<h2>Jakou hodnotu zvolit</h2>



<p>Pokud je hodnota času nastavena příliš nízko, může to vést k neúspěšnému dokončení skriptu, což může mít za následek chyby na stránce nebo dokonce ztrátu dat. Na druhou stranu, pokud je hodnota času nastavena příliš vysoko, může to způsobit zbytečnou zátěž serveru.</p>



<p>Proto také není ideální nastavit jí pro celý WordPress. Vykreslení stránky, než se uloží do cache je otázkou nižších jednotek vteřin. Aktualizace WordPress zase otázkou desítek vteřin. Zálohování může trvat minuty.</p>



<p>V kontextu WordPressu může být funkce <code>set_time_limit()</code> použita například při nahrávání velkých souborů nebo při dlouhých databázových operacích. Například, pokud je WordPress nastaven tak, že má nahrávat velký soubor a funkce je nastavena na hodnotu, která není dostatečně vysoká na to, aby umožnila nahrání souboru, operace se nezdaří a může se zobrazit chybová zpráva.</p>



<h2>Problémy které může způsobit</h2>



<p>Nejčastější problémy, které může způsobit nízká hodnota <code>set_time_limit()</code>, zahrnují neúspěšné aktualizace, problémy s nahráváním souborů a chyby databáze. Tyto problémy mohou způsobit nesprávné chování stránky nebo dokonce její selhání. Například, pokud se pokoušíte aktualizovat WordPress nebo některý z jeho pluginů a funkce <code>set_time_limit()</code> je nastavena na hodnotu, která není dostatečně vysoká na to, aby umožnila dokončení procesu, aktualizace se nezdaří. To může vést k nestabilitě stránky nebo k nemožnosti přístupu k určitým funkcím.</p>



<p>Rovněž, pokud se pokoušíte nahrát velký soubor a funkce <code>set_time_limit()</code> je nastavena na hodnotu, která není dostatečně vysoká na to, aby umožnila nahrání souboru, nahrání se nezdaří a může se zobrazit chybová zpráva. Toto může být obzvláště problém při nahrávání velkých mediálních souborů, jako jsou obrázky nebo videa.</p>



<p>Pro řešení těchto problémů je možné funkci <code>set_time_limit()</code> navýšit. To se obvykle provádí tím, že se do skriptu přidá řádek kódu <code>set_time_limit(300);</code>, kde 300 je počet sekund, po který je skript povolen k běhu. Tento kód by měl být přidán na začátek skriptu, který potřebuje více času k dokončení.</p>



<p>Funkce <code>set_time_limit()</code> může také být vypnutá na straně serveru. V tomto případě se objeví chybová zpráva:</p>



<pre class="wp-block-preformatted">Warning: set_time_limit() has been disabled for security reasons in /data/web/virtuals/123456/virtual/www/domains/domena.tld/wp-admin/includes/class-wp-upgrader.php on line 468</pre>



<p>Více informací se dozvíte v článku <a href="https://wordpress.bool.cz/warning-set_time_limit-has-been-disabled-for-security-reasons-in/">WARNING: SET_TIME_LIMIT() HAS BEEN DISABLED FOR SECURITY REASONS IN</a>.</p>



<h2>Pozor na omezení</h2>



<p>Je důležité poznamenat, že navýšení hodnoty <code>set_time_limit()</code> může být omezeno nastavením serveru. Někteří hostingoví poskytovatelé mohou mít nastaveny maximální limity pro běh skriptů, které nelze překročit. Pokud se setkáte s tímto omezením, budete muset se svým hostingovým poskytovatelem diskutovat o možnostech navýšení tohoto limitu.</p>



<p>Pokud je limit <code>set_time_limit()</code> nastaven příliš nízko a není možné ho zvýšit kvůli omezením serveru, můžete se setkat s řadou problémů. Mohou se objevit chybové zprávy, stránka může být nestabilní nebo mohou selhat určité funkce, jako je nahrávání souborů nebo aktualizace.</p>



<p>V případě, že navýšení <code>set_time_limit()</code> není možné, můžete se pokusit optimalizovat svůj WordPress a jeho pluginy tak, aby potřebovaly méně času k provedení operací. Můžete také zvážit přechod k jinému hostingovému poskytovateli, který nabízí vyšší limity pro běh skriptů.</p>



<h2>Závěr</h2>



<p>Závěrem je třeba říci, že správné nastavení <code>set_time_limit()</code> je klíčové pro správné fungování WordPressu. Tato funkce pomáhá zajišťovat, že dlouho běžící skripty nezablokují server a nezpomalí výkon stránky. Pokud je však nastavena příliš nízko, může to vést k řadě problémů, včetně selhání aktualizací, problémů s nahráváním souborů a chyb databáze.</p>



<p>Řešení těchto problémů může zahrnovat navýšení hodnoty, ale to může být omezeno nastavením serveru. Pokud se setkáte s tímto omezením, můžete se obrátit na svého hostingového poskytovatele a diskutovat o možnostech navýšení limitu, nebo se můžete pokusit optimalizovat svůj WordPress a jeho pluginy tak, aby potřebovaly méně času k provedení operací.</p>



<p>V každém případě je třeba přistupovat k nastavení <code>set_time_limit()</code> s opatrností a uvědomit si, že správné nastavení této funkce může mít významný vliv na výkon a stabilitu vaší WordPress stránky.</p>



<ul><li><a href="https://www.php.net/manual/en/function.set-time-limit.php" target="_blank" rel="noopener">https://www.php.net/manual/en/function.set-time-limit.php</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://wordpress.bool.cz/wordpress-a-set_time_limit/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Je váš editor bloků velmi pomalý &#8211; problém může být v rozšíření do prohlížeče</title>
		<link>https://wordpress.bool.cz/je-vas-editor-bloku-velmi-pomaly-problem-nemusi-byt-v-rozsireni-do-prohlizece/</link>
					<comments>https://wordpress.bool.cz/je-vas-editor-bloku-velmi-pomaly-problem-nemusi-byt-v-rozsireni-do-prohlizece/#respond</comments>
		
		<dc:creator><![CDATA[ChATriX]]></dc:creator>
		<pubDate>Sat, 04 Mar 2023 00:40:03 +0000</pubDate>
				<category><![CDATA[Chyby a problémy]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Grammarly]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://wordpress.bool.cz/?p=57</guid>

					<description><![CDATA[Psaní článků na blog ve WordPress může být náročný proces. Zvláště když se vyskytne otravný technický problém, který nás nutí přemýšlet jestli to stojí za to. Všechno laguje, každý klik rovná se několik vteřin čekání. Větrák v notebooku se roztočí jakoby člověk hrál nějakou náročnou hru. Přesně to se mi stalo nedávno, když jsem se ..<div class="clear-fix"></div><a href="https://wordpress.bool.cz/je-vas-editor-bloku-velmi-pomaly-problem-nemusi-byt-v-rozsireni-do-prohlizece/" title="přečtěte si více...">Pokračovat ve čtení</a>]]></description>
										<content:encoded><![CDATA[
<p>Psaní článků na blog ve WordPress může být náročný proces. Zvláště když se vyskytne otravný technický problém, který nás nutí přemýšlet jestli to stojí za to. Všechno laguje, každý klik rovná se několik vteřin čekání. Větrák v notebooku se roztočí jakoby člověk hrál nějakou náročnou hru. Přesně to se mi stalo nedávno, když jsem se snažil psát článek na blog a editor bloků začal lagovat při každém kliknutí.</p>



<span id="more-57"></span>



<p>Řešení problému jsem hledal na několika různých diskuzích a zkoušel navrhovaná řešení. Od jednoduchých a přes opravdu krkolomná &#8211; ukládání do mezipaměti, vypnutí nepoužívaných pluginů, downgrade atd. Nicméně, všechny tyto metody byly neúčinné.</p>



<p>Nakonec jsem se rozhodl vypnout rozšíření v prohlížeči Chrome, v tomto případě <strong>Grammarly</strong>. A právě tady bylo řešení mého problému! Jakmile jsem vypnul Grammarly, editor bloků okamžitě reagoval svižně a od té doby jsem neměl žádné problémy.</p>



<p>Tento zážitek mě přiměl k zamyšlení, jaké další problémy mohou být spojeny s používáním různých rozšíření do prohlížeče. Mohou zpomalovat rychlost práce s WordPress editorem Guttenberg a mohou také snižovat výkon našeho počítače.</p>



<p>Pokud se setkáte s podobným problémem, zvažte i vypnutí některých rozšíření prohlížeče. Pokud máte pocit, že některá rozšíření skutečně potřebujete, zvažte:</p>



<ul><li>Aktualizujte prohlížeč a rozšíření.</li><li>Úplně jiný prohlížeč (na každém prohlížeči může fungovat rozšíření jinak).</li><li>Napište tvůrci rozšíření o problému.</li><li>Nákup počítače s vyšší výkonem anebo hardwarový upgrade (procesor, paměť).</li></ul>



<p>Dobré zprávy jsou, že s vypnutím některých rozšíření můžete snadno vyřešit problémy s editorem bloků.</p>



<h2>Jak vypnout rozšíření v různých prohlížečích</h2>



<p>Google Chrome:</p>



<ol><li>Otevřete prohlížeč Google Chrome a klepněte na tři tečky vpravo nahoře.</li><li>Vyberte možnost &#8222;Další nástroje&#8220; a poté &#8222;Rozšíření&#8220;.</li><li>Zde uvidíte seznam všech nainstalovaných rozšíření v prohlížeči. Chcete-li vypnout rozšíření, klepněte na přepínač vedle něj, dokud se nezobrazí šedivá barva.</li></ol>



<p>Mozilla Firefox:</p>



<ol><li>Otevřete prohlížeč Mozilla Firefox a klepněte na tři čárky vpravo nahoře.</li><li>Vyberte možnost &#8222;Doplňky a vzhled&#8220;.</li><li>Zde uvidíte seznam všech nainstalovaných rozšíření v prohlížeči. Chcete-li vypnout rozšíření, klepněte na tlačítko &#8222;Deaktivovat&#8220;.</li></ol>



<p>Microsoft Edge:</p>



<ol><li>Otevřete prohlížeč Microsoft Edge a klepněte na tři tečky vpravo nahoře.</li><li>Vyberte možnost &#8222;Rozšíření&#8220;.</li><li>Zde uvidíte seznam všech nainstalovaných rozšíření v prohlížeči. Chcete-li vypnout rozšíření, klepněte na přepínač vedle něj, dokud se nezobrazí šedivá barva.</li></ol>



<p>Apple Safari:</p>



<ol><li>Otevřete prohlížeč Apple Safari a klepněte na &#8222;Safari&#8220; v horní nabídce.</li><li>Vyberte možnost &#8222;Přidat doplňek&#8220;.</li><li>Zde uvidíte seznam všech nainstalovaných rozšíření v prohlížeči. Chcete-li vypnout rozšíření, klepněte na tlačítko &#8222;Odstranit&#8220;.</li></ol>
]]></content:encoded>
					
					<wfw:commentRss>https://wordpress.bool.cz/je-vas-editor-bloku-velmi-pomaly-problem-nemusi-byt-v-rozsireni-do-prohlizece/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Co dělat, když váš redakční systém neodesílá emaily</title>
		<link>https://wordpress.bool.cz/co-delat-kdyz-vas-redakcni-system-neodesila-emaily/</link>
					<comments>https://wordpress.bool.cz/co-delat-kdyz-vas-redakcni-system-neodesila-emaily/#respond</comments>
		
		<dc:creator><![CDATA[drago]]></dc:creator>
		<pubDate>Sat, 03 Sep 2022 14:57:08 +0000</pubDate>
				<category><![CDATA[Chyby a problémy]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Joomla!]]></category>
		<category><![CDATA[mail()]]></category>
		<category><![CDATA[mailserver]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SMTP]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://wordpress.bool.cz/?p=52</guid>

					<description><![CDATA[Pokud chcete vytvářet profesionální blog či magazín s redakcí, neobejdete se bez funční emailové komunikace. Moderní redakční systémy jako WordPress, Joomla! Anebo Drupal v sobě mají zabudované funkce, které umožňují provozování online redakce. Administrátor může uživatelům přidělit různé práva, takže není problém mít redaktora, korektora, šéfredaktora, designera, programátora a samozřejmě i obchoďáka, bez toho se ..<div class="clear-fix"></div><a href="https://wordpress.bool.cz/co-delat-kdyz-vas-redakcni-system-neodesila-emaily/" title="přečtěte si více...">Pokračovat ve čtení</a>]]></description>
										<content:encoded><![CDATA[
<p>Pokud chcete vytvářet profesionální blog či magazín s redakcí, neobejdete se bez funční emailové komunikace. Moderní redakční systémy jako WordPress, Joomla! Anebo Drupal v sobě mají zabudované funkce, které umožňují provozování online redakce. Administrátor může uživatelům přidělit různé práva, takže není problém mít redaktora, korektora, šéfredaktora, designera, programátora a samozřejmě i obchoďáka, bez toho se žádný magazín neobejde. Někdo prodávat reklamu prostě musí.</p>



<p>Základem komunikace v redakci se stává email. Můžete mít sice vlastní interní systém, ale stejně v konečném důsledku budou všichni dostávat upozornění emailem anebo SMSkou. Když k tomu ještě přidáme spousta čtenářů, kteří odebírají novinky, tak se prostě mailový server nezastaví. Co však dělat, když se zastavil a emaily nechodí.</p>



<span id="more-52"></span>



<h2>Analyzujte chybu</h2>



<p>Základem je dozvědět se proč vlastně zprávy přestaly chodit. Musíte totiž vyloučit chybu na straně příjemce. Ta u něj může být úplně (má něco špatně nastaveného), částečně (má vás na blacklistu) anebo vůbec (prostě máte něco špatně vy).</p>



<p>Právě z analýzy zpráv, které se budou vracet poznáte, co je špatně. Pro začátek je důležité zjistit jaké číslo odpovědi vrátil server.</p>



<ul><li>421, 441, 442, 451, 452 – cílový server je přetížen anebo potřebuje čas</li><li>422, 431, – příjemce má plnou schránku (počet, velikost)</li><li>446, 449, 471 – chyba je někde na cestě, klidně i u vás</li><li>451 – možný problém s greylistingem</li><li>500, 501, 502, 503, 504, 530, 541 – váš problém</li><li>510, 511, 512, 513, 553 – váš problém zkontrolujte email cíle</li><li>523 – posílejte emaily po menších dávkách</li><li>541, 554 – jste na blacklistu</li><li>550 – hodně možností, většinou schránka neexistuje</li><li>552 – velká příloha</li></ul>



<h2>Greylist</h2>



<p>Jedná se o obranou metodu jak se brání provozovatelé emailových služeb spamu. Emailová schránka se tváří jako nedostupná a vrátí email zpět. Slušně vychovaný mailový server se pokusí email doručit znovu (většinou v řádech minut). Podruhé už má mailserver příjemce uložené informace, že tento mail to jednou zkoušel a dovolí mu projít.</p>



<p>Zdržení přitom může být různé. Většinou v jednotkách minut, ale v případě většího provozu i desítky. Záleží na konfiguraci, existují případy, kdy to trvá i hodiny. Výsledkem tak může být, že pokud váš redaktor čeká například na přihlašovací údaje může to chvíli trvat.</p>



<p>Většinou si mailserver pamatuje komunikaci, takže se čeká jen na první email. Na některých systémech se dá také celý proces urychlit pokud si příjemce přidá odesilatele do kontaktů.</p>



<h2>Blacklist</h2>



<p>Někdy se dostanete mailserver na blacklist. Většinou je to za odesílání nevyžádané pošty. Blacklist se vztahuje na IP adresu mailserveru ale někteří provozovatelé serverů anebo uživatelé mají i blacklisty s doménami.</p>



<p>Dostat se z blacklistu je poměrně problematické. Provozovatelé mailových služeb se většinou nechtějí moc zabývat tím, že jste skončili na blacklistu, protože využívají veřejně dostupné databáze.</p>



<p>Řešením v případě IP adresy na blacklistu může být použít jiný mailserver. U velkých služeb jako Seznam anebo Gmail funguje přidání odesilatele do kontaktů, kdy je pak konkrétnímu emailu dána výjimka.</p>



<p>Z blacklistu se dostanete tak, že problém budete řešit s tím, kdo blacklist spravuje. Samozřejmě řešit by to měl správce mailserveru, pokud jste na sdíleném hostingu musí to udělat provozvoatel.</p>



<h2>Funkce mail() vs SMTP</h2>



<p>Standardně používají redakční systémy k rozesílání emailů PHP funkci mail(), která slouží k odesílání emailů. Pro menší komunikaci to není problém, ovšem mohou se objevit určité problémy s doručováním. Pokud to jde poohlédněte se po SMTP pluginu. Zvláště u WordPress, který využívá funkci wp_mail() se v poslední době objevilo několik případů, kdy zvláště zahraniční mailservery měly problém s doručováním. Výhodou SMTP pluginu je, že v případě problémů můžete přenastavit údaje na jiný SMTP server. Pozor pokud se nejedná o placené řešení, ale chcete použít třeba SMTP od Gmail je to opravdu jen pro týmovou komunikaci, na velké rozesílání, třeba newsletterů je lepší zvolit vlastní SMTP server anebo některou z placených služeb.</p>



<h2>Zakázaná funkce mail()</h2>



<p>Jakmile vám napadne malware vaši instalaci redakčního systému, první co vám na sdíleném hostingu udělají, že odstaví právě funkci mail. Dokud jej nevyčistíte, tak vám jí neaktivují. Což je samozřejmě správně, protože právě takto rozesílající redakční systémy dostávají nejčastěji sdílené mailservery na blacklisty.</p>



<p>I když se dá obejít zakázání funkce mail(), přes výše uvedené řešení s pluginem na SMTP server, tak jej nezkoušejte, dokud si nejste jistí, že jste se opravdu zbavili všeho malware na napadeném webu.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wordpress.bool.cz/co-delat-kdyz-vas-redakcni-system-neodesila-emaily/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Jak vyřešit chybu – Fatal error: Allowed memory size of</title>
		<link>https://wordpress.bool.cz/jak-vyresit-chybu-fatal-error-allowed-memory-size-of/</link>
					<comments>https://wordpress.bool.cz/jak-vyresit-chybu-fatal-error-allowed-memory-size-of/#respond</comments>
		
		<dc:creator><![CDATA[drago]]></dc:creator>
		<pubDate>Sat, 03 Sep 2022 14:52:22 +0000</pubDate>
				<category><![CDATA[Chyby a problémy]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://wordpress.bool.cz/?p=50</guid>

					<description><![CDATA[Na chybu Fatal error: Allowed memory size of 123456789 bytes exhausted (tried to allocate 1234567 bytes) in /xxx/xxx/public_html/wp-includes/plugin.php on line xxx nejčastěji narazíte u WordPress po přesunu na nový webhosting anebo pokud některý z pluginů provádí náročnou operaci. Výjimečně lze tuto chybu pozorovat i u aktualizace. Co tato chyba znamená Tato chyba vám oznamuje, že ..<div class="clear-fix"></div><a href="https://wordpress.bool.cz/jak-vyresit-chybu-fatal-error-allowed-memory-size-of/" title="přečtěte si více...">Pokračovat ve čtení</a>]]></description>
										<content:encoded><![CDATA[
<p>Na chybu <em>Fatal error: Allowed memory size of 123456789 bytes exhausted (tried to allocate 1234567 bytes) in /xxx/xxx/public_html/wp-includes/plugin.php on line xxx</em> nejčastěji narazíte u WordPress po přesunu na nový webhosting anebo pokud některý z pluginů provádí náročnou operaci. Výjimečně lze tuto chybu pozorovat i u aktualizace.</p>



<span id="more-50"></span>



<h2>Co tato chyba znamená</h2>



<p>Tato chyba vám oznamuje, že PHP vlákno při generování stránky narazilo na omezení paměti RAM, která byla vláknu přidělena. Implicitně to u starších poskytovatelů bývá 32 MB RAM. Moderní webhostingy už s tímto u redakčních systémů počítají a základní (defaultní) hodnota je 64 MB RAM. to by mělo dostatečně vystačit všem běžným skriptům.</p>



<h2>Jak se tato chyba dá řešit</h2>



<p>V podstatě jsou dvě řešení. Buď navýšit RAM pro daný skript anebo najít jiné řešení jak data zpracovávat.</p>



<h3>Navýšení paměti</h3>



<p>Maximální hodnotu, kterou můžete vláknu přidělit najdete v nastavení PHP (konkrétně to má na starosti php.ini) pod položkou <em>memory_limit</em>. Pokud k němu máte přístup zkuste tuto hodnotu navýšit například na 64 MB.</p>



<p>Další možností jak paměť pro skript zvětšit, lze přímo v daném souboru. Otevřete si soubor <em>wp-config.php</em> a vložte do něj:</p>



<pre class="wp-block-preformatted">define('WP_MEMORY_LIMIT', '64M');</pre>



<p>Pokud se při spuštění neobjeví chyba, tak váš WordPress má k dispozici už 64 MB RAM a to by mu mělo stačit.</p>



<p>Třetí varianta je využití souboru <em>.htaccess</em>. Před zásahem do něj, ale určitě vše zazálohujte. Pokud se v něm něco pokazí připravte se na chybu 500. Někam na začátek vložte řádek:</p>



<pre class="wp-block-preformatted">php_value memory_limit 64M</pre>



<h3>Úprava skriptu</h3>



<p>Z chybové hlášky se dozvíte, který skript má problém. Většina pluginů, které provádí na paměť náročné operace, jako jsou například zálohovací pluginy, mají v nastavení možnost úprav. Například místo, aby tvořily velké soubory nastavte větší počet menších.</p>



<p>Pokud to nelze můžete zkusit najít alternativní plugin, který nebude na paměť tak moc náročný. Jestli ale plugin například má za úkol upravovat fotky a potřebujete zrovna nějakou opravdu velkou, je lepší to udělat lokálně na počítači, anebo jí nejdříve zmenšit. Pro takovéto případy vždy dobré zvolit speciální hosting s vysokými parametry <em>memory_limit</em> anebo rovnou VPS, kde jsou nastavení jednotlivých parametrů čistě ve vaší režii.</p>



<p>V předchozích odstavcích bylo nastíněno několik způsobů řešení. Jestli vytváříte vlastní skript a nemůžete jej donutit snížit nároky na paměť zkuste zauvažovat na rozdělení skriptu na menší úkony. Například data zpracovávat postupně. Pro třídění dat je téměř vždy výhodnější použít databáze. Od toho jsou stavěné.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wordpress.bool.cz/jak-vyresit-chybu-fatal-error-allowed-memory-size-of/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Problém s načítáním webových stránek</title>
		<link>https://wordpress.bool.cz/problem-s-nacitanim-webovych-stranek/</link>
					<comments>https://wordpress.bool.cz/problem-s-nacitanim-webovych-stranek/#respond</comments>
		
		<dc:creator><![CDATA[drago]]></dc:creator>
		<pubDate>Sat, 03 Sep 2022 14:46:19 +0000</pubDate>
				<category><![CDATA[Chyby a problémy]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[optimalizace]]></category>
		<category><![CDATA[PING]]></category>
		<category><![CDATA[Problémy]]></category>
		<category><![CDATA[prohlížeč]]></category>
		<category><![CDATA[rychlost]]></category>
		<guid isPermaLink="false">https://wordpress.bool.cz/?p=39</guid>

					<description><![CDATA[Pokud má problém prohlížeč s přístupem na webové stránky může být příčin více. Postupně si projdeme jednotlivé části procesu a zkusíme najít správné řešení. Zároveň si ukážeme pár tipů, které mohou značně urychlit některé procesy a tím i zrychlit načítání stránek v prohlížeči. Některé procesy jsou zkráceny, protože se jedná o rozsáhlou problematiku. Do budoucna ..<div class="clear-fix"></div><a href="https://wordpress.bool.cz/problem-s-nacitanim-webovych-stranek/" title="přečtěte si více...">Pokračovat ve čtení</a>]]></description>
										<content:encoded><![CDATA[
<p>Pokud má problém prohlížeč s přístupem na webové stránky může být příčin více. Postupně si projdeme jednotlivé části procesu a zkusíme najít správné řešení. Zároveň si ukážeme pár tipů, které mohou značně urychlit některé procesy a tím i zrychlit načítání stránek v prohlížeči.</p>



<p>Některé procesy jsou zkráceny, protože se jedná o rozsáhlou problematiku. Do budoucna si je můžeme dále rozvést.</p>



<span id="more-39"></span>



<h2>Proces přístupu prohlížeče k stránkám</h2>



<p>Aby jste si mohli procházet internetové stránky musí prohlížeč prostřednictvím počítače udělat několik úkonů.</p>



<p>Když zadáte do prohlížeče doménu, kterou chcete navštívit nejdříve se váš počítač pokusí vyžádat IP adresu serveru, na který doména směřuje z DNS serveru. Jakmile jí získá dotáže se daného serveru s touto IP adresou na obsah domény.</p>



<p>Vše je na první pohled jednoduché, ovšem každý z těchto částí může mít vliv na rychlost načítání webových stránek.</p>



<h3>Rychlost a dostupnost DNS serverů</h3>



<p>Jako uživatel připojený k internetu většinou získáte adresu DNS serverů od svého poskytovatele. Jestli je mezi vámi a poskytovatelem například router, tak slouží jako mezičlánek. Aktuální stav zjistíte pomocí příkazového řádku (<em>cmd.exe</em>) a příkazem <em>ipconfig.exe /all</em> u své síťové karty pak dohledejte DHCP a DNS.</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img width="675" height="333" src="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/DNS-DHCP.png" alt="Pomocí příkazů ipconfig.exe /all se dozvíme, jaké DNS servery využívá náš počítač" class="wp-image-40" srcset="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/DNS-DHCP.png 675w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/DNS-DHCP-300x148.png 300w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/DNS-DHCP-150x74.png 150w" sizes="(max-width: 675px) 100vw, 675px" /><figcaption>Pomocí příkazů ipconfig.exe /all se dozvíme, jaké DNS servery využívá náš počítač</figcaption></figure></div>



<p>Jejich rychlost si pak ověřte přes příkaz ping. Jako parametr zadejte jejich IP adresu. V případě, že máte podezření na jejich vypadávání, přidejte ještě -t a průběžně sledujte jak se chovají. Pokud jsou prodlevy velké zkuste změnit DNS na 8.8.8.8 a 8.8.4.4 to jsou DNS od Google. Mají také výhodu, že se rychle obnovují, což oceníte pokud doména změní hosting a nechcete dlouho vidět obsah.</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" width="490" height="341" src="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/ping-8-8-8-8.png" alt="Příkazem PING si ověříme rychlost odezvy DNS serveru 8.8.8.8 a 8.8.4.4" class="wp-image-41" srcset="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/ping-8-8-8-8.png 490w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/ping-8-8-8-8-300x209.png 300w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/ping-8-8-8-8-150x104.png 150w" sizes="(max-width: 490px) 100vw, 490px" /><figcaption>Příkazem PING si ověříme rychlost odezvy DNS serveru 8.8.8.8 a 8.8.4.4</figcaption></figure></div>



<p>Z domova menší prodleva nevadí. Na doménu se zeptá váš počítač jen při první návštěvě a pak v pravidelných intervalech, které mohou být v řádech minut anebo i dnů. Nejedná se tedy o nic, co by výrazně zpomalovalo vaše prohlížení stránek na jedné doméně. Problém to je když jsou výpadky. Pak se na stránku nemusíte vůbec dostat. Osobně používám DNS od Google. Důvodů je více, ale to můžeme probrat u dalšího článku.</p>



<p>DNS využívá i vaše webová stránka. Ukládají se do ní data k doméně, například jestli pracuje s IPv6 anebo na ní směřuje email. V podstatě počítač si stahuje tyto data a pak s nimi pracuje. Ačkoliv je nepravděpodobné, že by mohl být jmenný server od poskytovatele webhostingu pomalý, může se stát, že je třeba rozbitý anebo je s ním jiný problém. V ČR už se stalo, že byl DNS server cílem masivního DDoS útoku. Rovněž si jej můžete otestovat přes ping a zjistit jestli funguje správně. V případě problémů jej pak nahradit jiným, ale pokud je k webhostingu jako součást služby, tak by měl být profesionálně nakonfigurovaný, tedy je lepší kontaktovat provozovatele jestli tam nemá něco špatně. Popravdě tu jde i o bezpečnost. Využívat službu třetí strany není v tomto případě ideálním řešením.</p>



<h2>Komunikace mezi serverem a prohlížečem</h2>



<p>Server poskytuje data pro prohlížeč, který je pak zobrazuje. Nutno podotknout, že ne všechna data jsou poskytována jedním serverem při vykreslování samotné stránky. Dnešní webové prezentace se skládají s desítek, občas i stovek elementů, které musí prohlížeč vykreslovat. Různé prohlížeče zvládají odlišný počet vykreslování elementů naráz.</p>



<h3>Odezva serveru</h3>



<p>Rychlost komunikace mezi serverem a vašim počítačem si opět můžete otestovat přes příkaz ping. Stačí zadat ping cilovadomena anebo ping ipadresa. Uvědomte si, že pokud je prodleva třeba 200 ms, tak ke každé sérii elementů, které bude prohlížeč vykreslovat a jsou umístěné na daném serveru se musí přidat tato hodnota, takže čím méně tím lépe. Bude samozřejmě záležet i na rychlosti vašeho připojení. Dejme tomu, že by se rychlost v ms neměla výrazně lišit od pingu na Seznam.cz popřípadě místní pobočky Google, pokud web nemáte umístění v Česku.</p>



<h3>Velikost souborů</h3>



<p>Další podíl na rychlosti má generování stránky serverem. Pokud pomineme čistě textové dokumenty bez jakéhokoliv formátování (TXT, HTML) a multimédia (JPG, AVI), tak server většinou pracuje s nějakým skriptem (PHP, ASP) jeho zpracování a vyhodnocení mu zabere nějaký čas. T</p>



<h3>TTFB</h3>



<p>o co potřebujete změřit se nazývá TTFB (time to first bite), neboli čas do prvního bitu. Technicky je to okamžik, kdy nám začne server posílat vygenerovanou stránku (provedl všechny výpočty). Tuto hodnotu nejlépe zjistíte přes nástroj na měření rychlosti. Zkuste třeba <a href="http://tools.pingdom.com/fpt/" target="_blank" rel="noopener">tools.pingdom.com</a>. Nezapomeňte si jako měřící bod zvolit Amsterdam. Pokud se stránka generuje nad 1 vteřinu zvažte optimalizaci, jestli je čas nad 2 vteřiny, tak to už je dlouho. Pozor ve většině případech je třeba optimalizovat web nikoliv server/hosting. Pouze pokud by se projevovali pravidelné nevysvětlitelné výkyvy u TTFB, které by neměli nic společného se samotným webem (moc návštěvnosti, aktualizace, generování individuální stránky), tak je vhodné kontaktovat odborníka na optimalizaci, který by vám doporučil změnit poskytovatele.</p>



<h3>Cache</h3>



<p>TTFB výrazně ovlivňuje zapnuté cachování. Jedná se o proces, kdy si webová stránka pro určité specifické návštěvníky, předgeneruje obsah a ten znovugeneruje jen pokud dojde k jeho úpravě. Pokud děláte test TTFB a víte, že používáte cache udělejte jej dvakrát za sebou.</p>



<p>Cache využívá mimo webové stránky i server. Například obsah nejdříve zkomprimuje, pošle prohlížeči, ten si jej rozbalí a začne vykreslovat. V podstatě se tak ušetří přenosová data vzroste výkon počítače samotného. Dříve to bylo celkem aktuální témat, dnes už však jsou připojení velice rychlé a výkon také někde jinde. Takže se komprimuje vše co se dá <img src="https://s.w.org/images/core/emoji/13.1.0/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<h2>Vykreslení stránky prohlížečem</h2>



<p>Takže máme za sebou vygenerovanou stránku a teď jí obdržel náš prohlížeč. Než jí vykreslí musí si stáhnout všechno potřebné. Tohle je problém zvláště lidí s pomalejším připojením, kteří například musí čekat na velký obrázek na pozadí. Mají tak bílou obrazovku a pocit, že web je pomalý. Ve skutečnosti je pomalé jejich připojení. Na druhou stranu to není jejich chyba ale vaše, protože existují metody, postupy a také doporučení, které dokáží vykreslování webu znatelně zrychlit. Anebo jej vykreslovat postupně tak, že to nebude vadit ve využívání. Třeba onen velký obrázek se může nahrát dodatečně a prozatím místo něj být třeba vhodný barevný podklad.</p>



<p>Tento druh optimalizace je velice náročnou záležitostí a vyžaduje poměrně hodně znalostí z oboru webdesignu a kódování šablon. V každém případě pokud vám u testu rychlosti vyskočil velmi dobrý čas u TTFB, ale stránka se načítá pomalu, zřejmě se nějaké optimalizaci, alespoň té částečné, nevyhnete.</p>



<p>Mimochodem test vám zároveň ukázal, které části se stahují odkud a s jakou rychlostí. Pomocí něj můžete najít slabé místa, která brzdí kompletní načtení webu. Jedním s řešení je i jejich odstranění. Všeho moc škodí a to i na webu.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wordpress.bool.cz/problem-s-nacitanim-webovych-stranek/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress – Nepodařilo se navázat spojení s databází</title>
		<link>https://wordpress.bool.cz/wordpress-nepodarilo-se-navazat-spojeni-s-databazi/</link>
					<comments>https://wordpress.bool.cz/wordpress-nepodarilo-se-navazat-spojeni-s-databazi/#respond</comments>
		
		<dc:creator><![CDATA[drago]]></dc:creator>
		<pubDate>Sat, 03 Sep 2022 14:42:01 +0000</pubDate>
				<category><![CDATA[Chyby a problémy]]></category>
		<category><![CDATA[databáze]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://wordpress.bool.cz/?p=34</guid>

					<description><![CDATA[Ačkoliv je WordPress neuvěřitelný redakční systém, tam jsou chyby s kterými si jen tak sám poradit nedokáže. Mezi ně patří i Nepodařilo se navázat spojení s databází. Pojďme se podívat jak se dá takováto chyba opravit. Co tato chyba znamená WordPress si jako většina redakčních systémů ukládá data do databáze na serveru. To je speciální ..<div class="clear-fix"></div><a href="https://wordpress.bool.cz/wordpress-nepodarilo-se-navazat-spojeni-s-databazi/" title="přečtěte si více...">Pokračovat ve čtení</a>]]></description>
										<content:encoded><![CDATA[
<p>Ačkoliv je WordPress neuvěřitelný redakční systém, tam jsou chyby s kterými si jen tak sám poradit nedokáže. Mezi ně patří i <em>Nepodařilo se navázat spojení s databází</em>. Pojďme se podívat jak se dá takováto chyba opravit.</p>



<span id="more-34"></span>



<h2>Co tato chyba znamená</h2>



<p>WordPress si jako většina redakčních systémů ukládá data do databáze na serveru. To je speciální program, který umí velice rychle a efektivně pracovat z daty. WordPress využívá MySQL. Chyba <em>Nepodařilo se navázat spojení s databází</em> v podstatě znamená, že se WordPress nedokáže spojit s MySQL databází. Důvodů je více a postupně si je probereme. Ve většině případů, to ale není chybou přímo WordPress. Tedy že se něco &#8222;rozbilo&#8220;.</p>



<h2>Špatné údaje pro spojení s databází</h2>



<p>Aby mohlo dojít k úspěšnému spojení s databází je nutné mít správné údaje. Zkuste navštívit administraci vašeho WordPress na <em>vašedomena.cz/wp-admin/</em> (vašedomena.cz nahraďte doménou, kde máte nainstalovaný WordPress).</p>



<p>Pokud uvidíte následující chybovou zprávu může to mít několik důvodů, které si teď probereme.</p>



<figure class="wp-block-image size-full"><img loading="lazy" width="800" height="432" src="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/wordpress-problem-s-pripojenim-k-databazi.png" alt="Během připojování k databázovému serveru došlo k chybě - To může znamenat, že uživatelské jméno nebo heslo ve vašem souboru wp-config.php je nesprávné, nebo není možné navázat spojení s databázovým serverem localhost, což by mohlo být způsobeno také tím, že váš databázový server u poskytovatele hostingu je mimo provoz." class="wp-image-35" srcset="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/wordpress-problem-s-pripojenim-k-databazi.png 800w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/wordpress-problem-s-pripojenim-k-databazi-300x162.png 300w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/wordpress-problem-s-pripojenim-k-databazi-768x415.png 768w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/wordpress-problem-s-pripojenim-k-databazi-150x81.png 150w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption>Během připojování k databázovému serveru došlo k chybě &#8211; To může znamenat, že uživatelské jméno nebo heslo ve vašem souboru wp-config.php je nesprávné, nebo není možné navázat spojení s databázovým serverem localhost, což by mohlo být způsobeno také tím, že váš databázový server u poskytovatele hostingu je mimo provoz.</figcaption></figure>



<p>V případě že vidíte chybu <em>Minimálně jedna databázová tabulka není dostupná. Pravděpodobně bude potřeba databázi opravit.</em> je tu trochu větší problém. Postupujte podle návodu, který se nachází o tři nadpisy níže.</p>



<h3>Databázový server na hostingu je nefunkční</h3>



<p>Pokud jste nedělali žádné úpravy na vašem WordPress, neinstalovali nové pluginy ani nedošlo k žádným změnám je tato varianta nejpravděpodobnější. Jestli chcete mít jistotu zkuste se podívat do databáze přes phpMyAdmin. Jestli je problém s přihlášením, tak na nic nečekejte a kontaktujte zákaznickou podporu. Může se stát, že o problému netuší. Bohužel ne všechny firmy u nás mají nonstop monitoring. Pokud je neupozorníte, tak na to ani nemusí přijít.</p>



<h3>Došlo k přemístění databázového serveru</h3>



<p>Někteří poskytovatelé webhostingu mají databáze na samostatných fyzických serverech. Důvodem může být bezpečnost, speciálně upravený server například s SSD disky anebo prostě to tak dělají. Poznáte to tak, že při instalaci se nevyplňovala do políčka <em>server</em> hodnota <em>localhos</em>t, ale jiná adresa (například db58.názevwebhositngu.cz). Pokud jste dostali od provozovatele nějaké upozornění e-mailem, určitě si jej dohledejte, jestli tam není něco o databázovém serveru.</p>



<p>Pokud ano, řešení je velice jednoduché.</p>



<ol><li>Připojte se přes vašeho FTP klienta na webhosting</li><li>Najděte v adresáři, kde máte nainstalovaný WordPress soubor <em>wp-config.php</em>.</li><li>Zkopírujte si jej k sobě na disk a zazálohujte.</li><li>Najděte si <em>define(&#8218;DB_HOST&#8216;, &#8218;<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color"><strong>něco</strong></mark>&#8218;);</em> (většinou řádek 28). A změňte <em><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-cyan-blue-color">něco</mark></strong></em> na aktuální adresu vašeho databázového serveru.</li><li>Nahrajte upravený soubor zpět na webhosting.</li></ol>



<p>Chyba by měla být odstraněna.</p>



<h3>Chyba po stěhování WordPress</h3>



<p>Pokud chybu <em>Nepodařilo se navázat spojení s databází</em> vidíte po stěhování WordPress na nový webhosting. Může být problémů více.</p>



<ul><li>Přestěhovaly jste i obsah databáze?</li><li>Jsou údaje v <em>wp-config.php</em> aktuální k nového webhostingu?</li></ul>



<h2>Minimálně jedna databázová tabulka není dostupná. Pravděpodobně bude potřeba databázi opravit.</h2>



<p>Pokud navštívíte wp-admin a vidíte tuto chybu, znamená to, že s tabulkami v databázi není něco v pořádku. Doufám, že máte zálohu webu, protože to nemusí pro vaše data dopadnout dobře. Před následujícími úkony si zazálohujte všechno co zbylo z databáze.</p>



<p>WordPress má v sobě nástroj na opravu.</p>



<ol><li>Připojte se k hostingu přes FTP.</li><li>Vložte do souboru wp-config.php následující řádek <em>define(&#8218;WP_ALLOW_REPAIR&#8216;, true);</em> pod &lt;?php (pod první řádek).</li><li>Zadejte adresu <em>vašedomenae/wp-admin/maint/repair.php</em> Zobrazí se vám následující stránka:</li></ol>



<figure class="wp-block-image size-full"><img loading="lazy" width="757" height="405" src="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/oprava-wordpress-databaze.png" alt="Oprava databáze WordPress prostřednictvím integrovaného nástroje." class="wp-image-36" srcset="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/oprava-wordpress-databaze.png 757w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/oprava-wordpress-databaze-300x161.png 300w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/oprava-wordpress-databaze-150x80.png 150w" sizes="(max-width: 757px) 100vw, 757px" /><figcaption>Oprava databáze WordPress prostřednictvím integrovaného nástroje.</figcaption></figure>



<p>Vyberte <em>Opravit databázi</em>.</p>



<p>Objeví se výpis probíhající opravy tabulek. Pokud došlo k nějakým větším problémům, na které nástroj sám nestačil, vypíše je do textového pole pod opravou.</p>



<figure class="wp-block-image size-full"><img loading="lazy" width="784" height="1005" src="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/protokol-chyb-pri-oprave.png" alt="Protokol chyb, ke kterým došlo při snaze opravit tabulky." class="wp-image-37" srcset="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/protokol-chyb-pri-oprave.png 784w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/protokol-chyb-pri-oprave-234x300.png 234w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/protokol-chyb-pri-oprave-768x984.png 768w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/protokol-chyb-pri-oprave-117x150.png 117w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/protokol-chyb-pri-oprave-300x385.png 300w" sizes="(max-width: 784px) 100vw, 784px" /><figcaption>Protokol chyb, ke kterým došlo při snaze opravit tabulky.</figcaption></figure>



<p>V tomto případě došlo k dvěma velkým problémům s kterými si už WordPress nedokáže sám poradit a je nutný pokročilejší zásah. Pokud nevíte jak to vyřešit, zkopírujte si výpis a zkuste požádat o pomoc někoho zkušenějšího. Dobrá jsou diskuzní fóra, kde se zdržuje komunita kolem WordPress.</p>



<p>V ukázkovém případě je na obrázku vidět, že chybí tabulky a pokud chci mít WordPress funkční musím je vytvořit v databází.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wordpress.bool.cz/wordpress-nepodarilo-se-navazat-spojeni-s-databazi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Chyba ve WordPress – Dočasný adresář neexistuje</title>
		<link>https://wordpress.bool.cz/chyba-ve-wordpress-docasny-adresar-neexistuje/</link>
					<comments>https://wordpress.bool.cz/chyba-ve-wordpress-docasny-adresar-neexistuje/#respond</comments>
		
		<dc:creator><![CDATA[drago]]></dc:creator>
		<pubDate>Sat, 03 Sep 2022 09:59:04 +0000</pubDate>
				<category><![CDATA[Chyby a problémy]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://wordpress.bool.cz/?p=15</guid>

					<description><![CDATA[Pokud jste se setkali s chybovou zprávou Dočasný adresář neexistuje, nejedná se s největší pravděpodobností o problém WordPress. Projdeme si postupně jednotlivé možné příčiny a k nim i řešení. Nejdříve proveďte základní kontrolu Než se pustíte do složitějších úprav ujistěte se, že za problémem není nějaký plugin, popřípadě šablona. Vypněte všechny pluginy a přepněte na ..<div class="clear-fix"></div><a href="https://wordpress.bool.cz/chyba-ve-wordpress-docasny-adresar-neexistuje/" title="přečtěte si více...">Pokračovat ve čtení</a>]]></description>
										<content:encoded><![CDATA[
<p>Pokud jste se setkali s chybovou zprávou <em>Dočasný adresář neexistuje</em>, nejedná se s největší pravděpodobností o problém WordPress. Projdeme si postupně jednotlivé možné příčiny a k nim i řešení.</p>



<span id="more-15"></span>



<h3>Nejdříve proveďte základní kontrolu</h3>



<p>Než se pustíte do složitějších úprav ujistěte se, že za problémem není nějaký plugin, popřípadě šablona. Vypněte všechny pluginy a přepněte na základní šablonu. Teprve pokud jste si jistí, že zde problém není vyzkoušejte následující kroky. V některých případech může tuto chybu způsobit špatně použitý cachovací (zásah do adresářové struktury) anebo bezpečnostní plugin (úprava práv).</p>



<h3>Soubor … se nepodařilo nahrát</h3>



<p>WordPress ukládá standardně soubory do adresáře <em>wp-content/uploads/</em>. Původně se tato cesta dala změnit v administraci <em>Nastavení – Média.</em> Ovšem od verze 3.5 už zde tuto volbu nenajdete. Nestandardní umístění tohoto adresáře může být jedním z problému této chyby.</p>



<h3>Zkontrolujte existenci adresáře /uploads/</h3>



<p>Připojte se na hosting ideálně přes FTP klienta, jestli tento adresář existuje. Osobně používám <em>Total Commander</em>. Jak se přihlásit přes FTP k hostingu najdete v článku <a href="https://wordpress.bool.cz/problem-s-prihlasenim-presmerovani/" data-type="URL" data-id="https://wordpress.bool.cz/problem-s-prihlasenim-presmerovani/">Problém s přihlášením – přesměrování</a>.</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" width="476" height="162" src="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/adresar-uploads.png" alt="" class="wp-image-16" srcset="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/adresar-uploads.png 476w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/adresar-uploads-300x102.png 300w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/adresar-uploads-150x51.png 150w" sizes="(max-width: 476px) 100vw, 476px" /></figure></div>



<p>Adresář jde jednoduše vytvořit pomocí klávesy F7. Pozor váš WordPress s největší pravděpodobností jede na Linuxovém serveru, který rozlišuje malá a velká písmena.</p>



<p>Než se však pustíte do vytváření adresáře ujistěte se, že váš WordPress nemá nastavený jiný adresář pro zápis. V adresáři s instalací najděte <em>wp-config.php</em>. Projděte jej jestli se v něm nenachází:</p>



<pre class="wp-block-preformatted">define('UPLOADS', '<strong>soubory-wp</strong>/<strong>jinyuploads</strong>');</pre>



<p>Pokud ano, tak se snaží WordPress zapisovat do adresáře <em>jinyuploads/</em>, který se nachází ve <em>soubory-wp/</em>.&nbsp; Pokud chcete tento jiný adresář pro nahrávání souborů WordPress ponechat, tak se ujistěte, že existuje a má povolená práva (viz. níže). Jinak tento řádek smažte a vytvořte adresář podle postupu výše.</p>



<p><strong>Pozor!</strong> Aby alternativní adresář mohl fungovat musí se zápis ve wp-config.php nacházet nad následujícím řádkem:</p>



<pre class="wp-block-preformatted">require_once(ABSPATH.’wp-settings.php’);</pre>



<p>Častou chybou při změně adresáře je právě umístění <em>define(&#8218;UPLOADS&#8216;, &#8218;soubory-wp/jinyuploads&#8216;);</em> na konec souboru wp-config.php.</p>



<h3>Zkontrolujte jestli do adresáře může WordPress zapisovat</h3>



<p>Každý soubor a adresář může mít určitá přístupová práva. Ta určují, kdo je může číst, zapisovat do nich a mazat.</p>



<p>Toto může být také váš problém. Adresář <em>uploads</em> existuje, ale samotný WordPress do něj nemá oprávnění zapisovat.</p>



<p>Připojte se k hostingu přes FTP, naděte adresář uploads a nastavte u něj oprávnění <strong>755</strong>. V Total Commander je to <em>Soubor &#8211; Změna atributů</em> a do políčka napište 755.</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" width="406" height="197" src="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/zmena-atributu-total-commander.png" alt="" class="wp-image-17" srcset="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/zmena-atributu-total-commander.png 406w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/zmena-atributu-total-commander-300x146.png 300w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/zmena-atributu-total-commander-150x73.png 150w" sizes="(max-width: 406px) 100vw, 406px" /></figure></div>



<h3>Chybějící dočasný adresář tmp</h3>



<p>Unix a Linux využívají globální dočasné adresáře /tmp/, popřípadě /var/tmp/ pro ukládání dočasných dat z internetových prohlížečů. Většinou tato data mají přežít případný restart serveru. Slouží však i pro přenos souborů mezi prohlížeče a serverem. V našem případě k nahrávání obrázků přes prohlížeč.</p>



<p>Adresář <em>/tmp/</em> společně s adresáři <em>/session/</em> a <em>/www/</em>. U některých hostingů to může být jinak. V každém případě pokud tento adresář smažete anebo mu přepíšete přístupová práva, tak vám nahrávání obrázků nebude fungovat.</p>



<p>Připojte se tedy přes FTP k vašemu webhostingu. Zkontrolujte zdali má /tmp/ atributy – oprávnění nastavené na 750 (pokud to nepůjde zkuste 777). Popřípadě jej vytvořte a práva nastavte. Vše by mělo začít fungovat bez restartu anebo nějaké čekání.</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" width="485" height="107" src="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/tmp-adresar-chyba-docasny-adresar-neexistuje.png" alt="" class="wp-image-18" srcset="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/tmp-adresar-chyba-docasny-adresar-neexistuje.png 485w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/tmp-adresar-chyba-docasny-adresar-neexistuje-300x66.png 300w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/tmp-adresar-chyba-docasny-adresar-neexistuje-150x33.png 150w" sizes="(max-width: 485px) 100vw, 485px" /></figure></div>
]]></content:encoded>
					
					<wfw:commentRss>https://wordpress.bool.cz/chyba-ve-wordpress-docasny-adresar-neexistuje/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Problém s přihlášením &#8211; přesměrování</title>
		<link>https://wordpress.bool.cz/problem-s-prihlasenim-presmerovani/</link>
					<comments>https://wordpress.bool.cz/problem-s-prihlasenim-presmerovani/#respond</comments>
		
		<dc:creator><![CDATA[drago]]></dc:creator>
		<pubDate>Sat, 03 Sep 2022 09:57:58 +0000</pubDate>
				<category><![CDATA[Chyby a problémy]]></category>
		<category><![CDATA[FTP]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[přihlášení]]></category>
		<category><![CDATA[šablona]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://wordpress.bool.cz/?p=19</guid>

					<description><![CDATA[Představte si situaci, kdy se pokusíte přihlásit do administrace a po odeslání formuláře dojde k přesměrování úplně někam jinam. Tato chyba se vyskytuje poměrně vzácně a ve většině případů za ní může sám administrátor. Zatímco pokročilejší uživatel nemá problém tuto situaci napravit, tak začátečník si jen tak neporadí. Základem je vědět co se zhruba stalo ..<div class="clear-fix"></div><a href="https://wordpress.bool.cz/problem-s-prihlasenim-presmerovani/" title="přečtěte si více...">Pokračovat ve čtení</a>]]></description>
										<content:encoded><![CDATA[
<p>Představte si situaci, kdy se pokusíte přihlásit do administrace a po odeslání formuláře dojde k přesměrování úplně někam jinam. Tato chyba se vyskytuje poměrně vzácně a ve většině případů za ní může sám administrátor. Zatímco pokročilejší uživatel nemá problém tuto situaci napravit, tak začátečník si jen tak neporadí.</p>



<span id="more-19"></span>



<p>Základem je vědět co se zhruba stalo špatně. Po jaké události došlo k chybě. Pokud to víte není ušetříte si spoustu starostí.</p>



<h2>Problém s pluginem</h2>



<p>Některé pluginy ovlivňují přihlášení uživatele. Může se jednat například o rozšíření na zvýšení bezpečnosti. Většina z nich totiž sleduje množství přihlášení a v případě, že je překročena určitá mez dojde k úplnému zablokování přístupu do administrace například s využitím .htaccess a stavového kódu 403 anebo je potenciální útočník přesměrován jinam.</p>



<p>Při výkonu skriptu, se však nemusí vždy vše podařit tak jak má. Spousta sdílených hostingů má svůj přístup a povolené funkce. Navíc automatické instalace jsou občas trochu odlišné.</p>



<p>Pokud víte, že přesměrování způsobil plugin, můžete jej zkusit vypnout zvenčí. </p>



<p>V krátkosti.</p>



<ol><li>Nalogujete se přes phpMyAdmin do databáze, kde máte tabulky s WordPress</li><li>Najdete tabulku wp_options (může mít trochu jinou předponu, pokud ano aplikujte změnu u bodu 3.)</li><li>Kliknete na SQL a zadáte <em>UPDATE wp_options SET option_value = ‚a:0:{}‘ WHERE option_name = ‚active_plugins’;</em></li><li>Kliknete na tlačítko Proveď</li></ol>



<p>Výsledkem jsou vypnuté pluginy.</p>



<h2>Problém s .htaccess</h2>



<p>Někdy se plugin pokusí přepsat soubor .htaccess a narazí například na odlišné nastavení u sdíleného hostingu. Zde je ideální obnovit původní .htaccess, po instalaci WordPress. Pokud jej nemáte k dispozici, tak si musíte vytvořit nový. To jde ovšem jen z administrace, kam nemáte přístup. Nezbývá než jej smazat. K tomu potřebujete přihlásit se k serveru s WordPress přes FTP.</p>



<p>Informace k přihlášení byste měli mít od svého poskytovatele webhostingu. V převážně většině případů budete potřebovat adresu serveru, login a heslo. K přístupu použijte některého z FTP klientů. Nejpoužívanější je zřejmě Total Commander.</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" width="401" height="257" src="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek.png" alt="" class="wp-image-20" srcset="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek.png 401w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-300x192.png 300w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-150x96.png 150w" sizes="(max-width: 401px) 100vw, 401px" /><figcaption>Klikněte na Síť a zvolte Protokol FTP &#8211; nové připojení</figcaption></figure></div>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" width="357" height="172" src="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-1.png" alt="" class="wp-image-21" srcset="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-1.png 357w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-1-300x145.png 300w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-1-150x72.png 150w" sizes="(max-width: 357px) 100vw, 357px" /><figcaption>Následně vyplňte adresu FTP serveru. Většinou je ve formátu server.provozovatel.tld. Různí poskytovatelé to však mají jinak. Nezapomeňte odškrtnout Anonymní připojení.</figcaption></figure></div>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" width="404" height="137" src="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-2.png" alt="" class="wp-image-22" srcset="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-2.png 404w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-2-300x102.png 300w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-2-150x51.png 150w" sizes="(max-width: 404px) 100vw, 404px" /><figcaption>Jméno uživatele je většinou váš FTP login či přihlašovací jméno.</figcaption></figure></div>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" width="405" height="142" src="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-3.png" alt="" class="wp-image-23" srcset="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-3.png 405w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-3-300x105.png 300w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-3-150x53.png 150w" sizes="(max-width: 405px) 100vw, 405px" /><figcaption>Heslo se při zadávání nezobrazuje, tak se ujistěte, že v případě CTRL+C a CTRL+V jste tam nepřidali i nějakou mezeru. Pozor jak u přihlašovacího jména tak i u hesla se rozlišuje velikost písmen.</figcaption></figure></div>



<p>Po úspěšném přihlášení, které by mělo být otázkou mrknutí oka (u zahraničních poskytovatelů to mohou být vteřiny), byste měli vidět základní strukturu webhostingu, kde máte svá data. Hledejte složku www anebo domains. Následně název domény s Vaší instalací WordPress.</p>



<p>Struktura uvnitř by měla být zhruba následující:</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img loading="lazy" width="510" height="596" src="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-4.png" alt="" class="wp-image-24" srcset="https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-4.png 510w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-4-257x300.png 257w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-4-128x150.png 128w, https://wordpress.bool.cz/wp-content/uploads/sites/4/2022/09/obrazek-4-300x351.png 300w" sizes="(max-width: 510px) 100vw, 510px" /></figure></div>



<ul><li>wp-admin je administrace. Uvnitř se nachází celé administrační rozhraní. V případě, že máte problém se stavovým kódem 403, tak v tomto adresáři by se měl nacházet soubor .htaccess. Ten si zazálohujte a následně smažte.</li><li>wp-content obsahuje šablony a pluginy. Pokud se vyskytl problém po nahrání šablony, otevřete tento adresář a v něm podadresář themes. Zde jsou šablony. Vámi nainstalovanou problémovou šablonu přejmenujte.</li><li>wp-includes tento adresář zatím neotvírejte <img src="https://s.w.org/images/core/emoji/13.1.0/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li></ul>



<p>V samotném adresáři se nachází soubor .htaccess. Nemá žádnou příponu. Zazálohujte si jej na disk a smažte.</p>



<p>Po smazání souboru .htaccess se přihlaste do administrace. Nový .htaccess vygenerujete tím, že kliknete na <strong>Nastavení</strong> &#8211; <strong>Trvalé odkazy</strong>. Vyberte variantu odkazů jakou jste měli předtím. Po kliknutí na <strong>Uložit změny</strong>, bude vygenerován nový .htaccess.</p>



<h2>Problém se šablonou</h2>



<p>Některé šablony mohou způsobit také problém s přihlášením. Není nic jednoduššího než problémovou šablonu přejmenovat. Použijte postup uvedený v předchozí části a přihlaste se přes FTP k vašemu hostingu. Následně v adresáři wp-content/themes/ najděte tu, po které se začal objevovat problém. Přejmenujte ji (stačí třeba přidat na konec jedno písmenko).</p>



<p>Pokud se znovu pokusíte přihlásit mělo by dojít k situaci, kdy je místo problémové šablony použita základní.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wordpress.bool.cz/problem-s-prihlasenim-presmerovani/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FATAL ERROR SYNTAX ERROR, UNEXPECTED T_STRING</title>
		<link>https://wordpress.bool.cz/fatal-error-syntax-error-unexpected-t_string/</link>
					<comments>https://wordpress.bool.cz/fatal-error-syntax-error-unexpected-t_string/#respond</comments>
		
		<dc:creator><![CDATA[drago]]></dc:creator>
		<pubDate>Sat, 23 May 2020 22:22:00 +0000</pubDate>
				<category><![CDATA[Chyby a problémy]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://wordpress.bool.cz/?p=108</guid>

					<description><![CDATA[Chybová zpráva Unexpected T_STRING v PHP označuje stav, kdy bylo přerušeno zpracovávání skriptu, protože zápis kódu obsahuje chybu. Ve většině případů se jedná o syntaktickou chybu anebo překlep. Opravit tento druh chyby většinou bývá jednoduché. Přebývající uvozovky v řetězci Mezi nejčastější případy této chyby jsou přebývající úvozový a to ať jednoduché&#160;‘&#160;anebo zdvojené&#160;“. Například tento kód, obsahuje chybně ..<div class="clear-fix"></div><a href="https://wordpress.bool.cz/fatal-error-syntax-error-unexpected-t_string/" title="přečtěte si více...">Pokračovat ve čtení</a>]]></description>
										<content:encoded><![CDATA[
<p>Chybová zpráva <strong>Unexpected T_STRING</strong> v PHP označuje stav, kdy bylo přerušeno zpracovávání skriptu, protože zápis kódu obsahuje chybu. Ve většině případů se jedná o syntaktickou chybu anebo překlep. Opravit tento druh chyby většinou bývá jednoduché.</p>



<span id="more-108"></span>



<h3 id="0-toc-title">Přebývající uvozovky v řetězci</h3>



<p>Mezi nejčastější případy této chyby jsou přebývající úvozový a to ať jednoduché&nbsp;<em>‘&nbsp;</em>anebo zdvojené&nbsp;<em>“</em>.</p>



<p>Například tento kód, obsahuje chybně uvozovky.</p>



<pre class="wp-block-code"><code>echo &quot;&lt;a href=&quot;https://www.flyer.cz&quot;&gt;Odkaz na super web&lt;/a&gt;&quot;;</code></pre>



<p>To způsobí následující chybu:</p>



<pre class="wp-block-code"><code>FATAL ERROR syntax error, unexpected &#039;https&#039; (T_STRING), expecting &#039;;&#039; or &#039;,&#039; on line number 1</code></pre>



<p>Uvozovky nemůžete dát takto dovnitř zápisu. Je nutné je escapovat pomocí zpětného lomítka \”.</p>



<pre class="wp-block-code"><code>echo &quot;&lt;a href=\&quot;https://www.flyer.cz\&quot;&gt;Odkaz na super web&lt;/a&gt;&quot;;</code></pre>



<p>Tento druh chyb nejlépe odhalíte používáním editoru, který barevně odlišuje kód. Osobně mám dobré zkušenosti s PSPad a v posledním roce hodně používám i Visual Studio Code</p>



<h3 id="1-toc-title">Neukončený řetězec</h3>



<p>Řetězec musí začínat a končit stejnými uvozovkami. Pokud na ně zapomenete, tak se objeví právě chyba&nbsp;<strong>Unexpected T_STRING</strong>.</p>



<p>Ukázka chybného zápisu:</p>



<pre class="wp-block-code"><code>echo &quot;Ahoj &lt;br&gt;;
echo &quot;světě &lt;br&gt;&quot;;</code></pre>



<p>Dočkáme se následující chybové hlášky:</p>



<pre class="wp-block-code"><code>FATAL ERROR syntax error, unexpected &#039;světě&#039; (T_STRING), expecting &#039;;&#039; or &#039;,&#039; on line number 2</code></pre>



<p>Jak je vidět chybová hláška v tomto případě odkazuje na řádek 2, protože tam se provádění skriptu zastavilo. Chyba se však nachází na řádku 1, kde chybí dvojité uvozovky. Je třeba si na to dávat pozor.</p>



<h3 id="2-toc-title">Špatné uvozovky</h3>



<p>V PHP se používají pouze dva druhy uvozovek a to ‘ a “. Pokud použijete jiné, tak se objeví chyba&nbsp;<strong>Unexpected T_STRING</strong>. To se nejčastěji stává při kopírování kódů z nějakých stránek. Spousta CMS používá automatické (pře)formátování textu, kde mohou být programátorské uvozovky nahrazené nějakými, které se lépe čtou (takzvané typografické uvozovky).</p>



<h3 id="3-toc-title">Chybějící středník</h3>



<p>Pokud s PHP začínáte a nemáte zkušenosti s jiným obdobným programovacím jazykem, tak chybějící středník je nejčastější chybou. Chce to pár dní, týdnů, let, dekád … no prostě občas na ně zapomene každý <img src="https://s.w.org/images/core/emoji/13.1.0/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>Příklad chyby:</p>



<pre class="wp-block-code"><code>&lt;?php
$a = 10;
$b = 20
$c = $a + $b;
?&gt;</code></pre>



<pre class="wp-block-code"><code>FATAL ERROR syntax error, unexpected &#039;$c&#039; (T_VARIABLE) on line number 4</code></pre>



<h3 id="4-toc-title">Aktivní nastavení short_open_tag v PHP.ini a XML</h3>



<p>Pokud je&nbsp;<em>short_open_tag</em>&nbsp;v PHP.ini zapnutá, tak části kódu &lt;? budou automaticky parsovány jako PHP a to i přesto, že takto například chceme definovat v hlavičce že se jedná o XML soubor.</p>



<p>Příklad:</p>



<pre class="wp-block-code"><code>&lt;?xml version=&quot;1.0&quot;?&gt;</code></pre>



<pre class="wp-block-code"><code>FATAL ERROR syntax error, unexpected &#039;version&#039; (T_STRING) on line number 1</code></pre>



<p>Chyba se objeví protože část za &lt;? se zpracovává jako PHP. Tedy webserver za sebou vidí dvě konstanty xml a version. Netuší k čemu je tam takto máte a vyhodnotí to jako chybu.</p>



<h3 id="5-toc-title">Neviditelné znaky</h3>



<p>V Unicode&nbsp; je řada znaků, které se nezobrazují, ale počítač je potřebuje pro správné fungování. Neviditelný znak může být například nedělitelná mezera (U+200B). Pokud se vám takovýto znak dostane do kódu, například kopírováním kusu textu, tak bývá velice obtížné jej najít.</p>



<pre class="wp-block-code"><code>&lt;?php
    ​echo &#039;Tento skript nefunguje&#039;;
?&gt;</code></pre>



<pre class="wp-block-code"><code>FATAL ERROR syntax error, unexpected &#039;&#039;Tento skript nefunguje&#039;&#039; (T_CONSTANT_ENCAPSED_STRING) on line number 2</code></pre>



<p>A jak se tyto neviditelné znaky dají najít? Pro editory jako Visual Studio Code na to existují doplňky, které je hledají a zobrazují. Další možností je použít hexeditor.</p>



<h3 id="6-toc-title">Chybějící $ u proměnné</h3>



<p>Každá proměnná v PHP musí začínat znakem $. Pokud jej zapomenete, tak se stane konstantou anebo jedním z předdefinovaných klíčových slov (and, class, global …)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wordpress.bool.cz/fatal-error-syntax-error-unexpected-t_string/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WARNING: SET_TIME_LIMIT() HAS BEEN DISABLED FOR SECURITY REASONS IN</title>
		<link>https://wordpress.bool.cz/warning-set_time_limit-has-been-disabled-for-security-reasons-in/</link>
					<comments>https://wordpress.bool.cz/warning-set_time_limit-has-been-disabled-for-security-reasons-in/#respond</comments>
		
		<dc:creator><![CDATA[drago]]></dc:creator>
		<pubDate>Sat, 16 May 2020 22:24:00 +0000</pubDate>
				<category><![CDATA[Chyby a problémy]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://wordpress.bool.cz/?p=110</guid>

					<description><![CDATA[S tímto varováním se nejčastěji setkáte při aktualizaci anebo instalaci šablony, pluginu anebo jádra&#160;WordPress. Nejedná se o chybu (error) ale o varování (warning). Informuje nás, že PHP funkce&#160;set_time_limit()&#160;je na serveru z bezpečnostních důvodů vypnutá. Takto vypadá varování při aktualizaci WordPress. Co dělá funkce set_time_limit() Funkce&#160;set_time_limit()&#160;je velice užitečná a mocná. Umožňuje totiž prodloužit dobu běhu skriptu ..<div class="clear-fix"></div><a href="https://wordpress.bool.cz/warning-set_time_limit-has-been-disabled-for-security-reasons-in/" title="přečtěte si více...">Pokračovat ve čtení</a>]]></description>
										<content:encoded><![CDATA[
<p>S tímto varováním se nejčastěji setkáte při aktualizaci anebo instalaci šablony, pluginu anebo jádra&nbsp;<a href="http://www.flyer.cz/wordpress/" target="_blank" rel="noopener">WordPress</a>. Nejedná se o chybu (error) ale o varování (warning). Informuje nás, že PHP funkce&nbsp;<strong>set_time_limit()</strong>&nbsp;je na serveru z bezpečnostních důvodů vypnutá.</p>



<p>Takto vypadá varování při aktualizaci WordPress.</p>



<pre class="wp-block-code"><code>Warning: set_time_limit() has been disabled for security reasons in /data/web/virtuals/123456/virtual/www/domains/domena.tld/wp-admin/includes/class-wp-upgrader.php on line 468</code></pre>



<h3 id="0-toc-title">Co dělá funkce set_time_limit()</h3>



<p>Funkce&nbsp;<strong>set_time_limit()</strong>&nbsp;je velice užitečná a mocná. Umožňuje totiž prodloužit dobu běhu skriptu a to až na hodnotu&nbsp;<strong>max_execution_time</strong>&nbsp;definovanou v&nbsp;<strong>php.ini</strong>.</p>



<p>Zjednodušeně řečeno, váš PHP skript může běžet v základním nastavení 30 vteřin (záleží na hostingu). Pokud je tento čas překročen, skript je přerušen chybou:</p>



<pre class="wp-block-code"><code>Fatal error: Maximum execution time of 30 second exceeded in /www/domains/domena.tld/mujskript.php</code></pre>



<p>Pro vygenerování webové stránky je to více než dost. Ale pokud potřebujete například zpracovat větší množství dat, vygenerovat report anebo provést stáhnout objemnější soubor, tak 30 vteřin nemusí stačit. A právě proto si pro specifický skript můžete prodloužit dobu jeho běhu až na hodnotu&nbsp;<strong>max_execution_time</strong>. Tu má nastavený každý webhosting jinak, běžně se setkáte se 60 – 300 vteřinami.</p>



<p>Takto se například prodlouží běh skriptu o 90 vteřin.</p>



<pre class="wp-block-code"><code>set_time_limit(90);</code></pre>



<h3 id="1-toc-title">Proč se set_time_limit vypíná</h3>



<p>Zjednodušeně řečeno dlouho běžící skript zabírá PHP vlákno procesoru. Pokud skript běží 90 vteřin, tak tento výkon nemůže být použitý na něco jiného. Třeba vygenerování 450 webových stránek, kterým stačí 0,2 vteřiny.</p>



<p>Pár desítek dlouho běžících skriptů si může klidně vyžádat výkon celého fyzického serveru a dokud se tyto skripty neukončí, tak ostatní čekají ve frontě a po čase končí na chybě 503 anebo vypršení spojení.</p>



<p>Funkce set_time_limit má velkou moc, ale také může napáchat hodně škody. Stačí když třeba skript, který generuje sitemap anebo čistí cache objeví nějaký neposedný vyhledávací robot a opakovaně jí volá. Takovéto skripty mohou být také častým cílem velice efektivního DoS útoku.</p>



<p>Nejčastěji vám tedy hosting vypne funkci set_time_limit(), pokud máte nějaký problémový skript, který by mohl ohrozit ostatní zákazníky. Což je trochu paradox, protože právě set_time_limit() se dá použít i obráceně a u problémových skriptů pro jistotu zkrátit jejich životnost, pokud by v nich někdo našel díru.</p>



<h3 id="2-toc-title">Vypnutá set_time_limit a WordPress</h3>



<p>WordPress volá funkci set_time_limit při instalaci a aktualizaci šablon, pluginů a jádra. Ve verzi WordPress 5.4.1 do má na starosti soubory:&nbsp;<strong>class-wp-upgrader.php</strong>&nbsp;funkce install_package řádek 468</p>



<pre class="wp-block-code"><code>set_time_limit( 300 );</code></pre>



<p>Obecně WordPress nastavuje maximální běh doby skriptu na 300 vteřin z preventivních důvodů. Ve skutečnosti tolik času na většině sdílených webhostingů ani nemá k dispozici. Pevné limity&nbsp;<strong>max_execution_time</strong>&nbsp;bývají o dost přísnější. U českých webhostingů není výjimkou maximum 90 vteřin.</p>



<p>Stačí to WordPress?</p>



<p>Záleží na rychlosti fyzických serverů (procesor, disky), zdali nedojde k problémům s připojením anebo dalším komplikacím. Velká aktualizaci WordPress může zabrat 30 – 50 vteřin. Některé větší pluginy anebo šablony mohou zabrat podobnou dobu.</p>



<p>Pokud tedy máte k dispozici pro běh skriptu alespoň 60 vteřin nemělo by docházet k problémům. Naopak 30 a méně vteřin už způsobuje komplikace na pomalejších serverech.</p>



<p>Maximální dobu běhu skriptu, kterou neupravuje set_time_limit, zjistíte pomocí funkce <strong>phpinfo()</strong>, která vám ukáže i konfiguraci webserveru. Ve WordPress najdete i pod <strong>Nástroje</strong> – <strong>Stav webu</strong>, záložka informace, server – hodnota <strong>PHP time limit</strong>.</p>



<figure class="wp-block-image"><img src="https://www.flyer.cz/wp-content/uploads/2020/05/php-time-limit.png" alt=""/></figure>



<p>e li zakázaná funkce&nbsp;<strong>set_time_limit()</strong>&nbsp;na vašem webhostingu a zároveň je maximální doba běhu skriptu 30 a méně vteřin, je opravdu reálné že při aktualizaci můžete narazit na problémy.</p>



<p>Samozřejmě i toto se dá řešit. Místo automatiky lze provádět aktualizace a instalace manuálně. Přes FTP nahrajete anebo přehrajete, co potřebujete nejnovější verzí. V administraci pak jen případně odkliknete aktualizaci databáze. Toto ušetří nějaký čas a do limitu 30 vteřin se vejdete.</p>



<p>Otázkou ale je, zdali nebude lepší vysvětlit svému provozovateli webhostingu, že váš WordPress prostě potřebujte pro pravidelné aktualizace a další údržbu funkci set_time_limit() mít puštěnou, tak jak je ve světě zcela běžné.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://wordpress.bool.cz/warning-set_time_limit-has-been-disabled-for-security-reasons-in/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
