Problém s nedostatkom pamäte býva častý problém vo Wordpress. Ak pri práci vo Wordpress narazíte na chybové hlásenie typu:
Fatal error: Out of memory (allocated 52428800) tried to allocate 35560 bytes) in /.../wp-includes/abc.php on line 123
prípadne
Fatal error: Allowed memory size of...
znamená to, že niečo (či už inštalácia alebo prevádzka šablóny alebo nejakého pluginu) vyčerpalo všetku dostupnú pamäť vyhradenú pre Vašu doménu.
V prípade hlásení typu Out of Memory, môžete použiť na internete rôzne kalkulačky, ktoré Vám prepočítajú aký limit ste dosiahli a o koľko kB (MB) skript presiahol limit, zadajte hodnotu z chybovej hlášky (byty) a hodnotu dostanete prepočítanú na megabyty. Kalkulačiek alebo konvertorov je veľa, môžete skúsiť napr. Byte Conversion tool, Byte Converter alebo Bit Calculator.
Existuje však niekoľko možností, ako tento nedostatok odstrániť.
Prvý krok - zistenie a nastavenie verzie PHP
Najprv si zistite akú verziu PHP používate, podľa toho si skontrolujte aké hodnoty máte zadané v súbore php.ini. Ak používate staršiu verziu ako napr. PHP 5.5, PHP 5.4, prípadne staršie, najprv odporúčame otestovať chod webu minimálne na verzii PHP 5.6, ideálne 7.4.
Všeobecne odporúčame, aby ste si Wordpress a pluginy aktualizovali na verziu plne kompatibilnú s PHP 7.4, príp. 7.3, Tieto verzie PHP majú vyššie povolené limity:
memory_limit = 512M upload_max_filesize = 256M post_max_size = 256M
Tieto hodnoty by mali stačiť pre každú inštaláciu Wordpress.
Ak nemôžete používať PHP 7.3 a novšie, pre staršie verzie PHP existuje riešenie:
V súbore php.ini, ktorý používate k aktuálnej verzii PHP (7.2 a staršie), ktorú máte nastavenú. Nás budú zaujímať hodnoty, ktoré nájdete na začiatku súboru:
[PHP] max_execution_time = 80 ; Maximum execution time kazdeho scriptu, v sekundach max_input_time = 60 ; Maximum amount of time each script may spend parsing request data memory_limit = 300M ; Maximum amount of memory a script may consume display_errors = On ; stdout (On) - Display errors to STDOUT log_errors = Off ; Log errors into a log file (server-specific log, stderr, or error_log (below)) upload_max_filesize = 40M ; Maximum allowed size for uploaded files. post_max_size = 40M
pre kontrolu aktuálneho nastavenia veľkosti pamäte nájdite položku:
memory_limit =
memory limit je nastavený na 300 MB (čo by ste mali vidieť aj v súbore) - platí len pre PHP 7.2 a staršie) Nastavenie určuje koľko MB pamäte môžu spotrebovať na svoj beh skripty. Limit sa týka celej domény, vrátane subdomén.
Ak máte memory_limit nastavený na 300M, tu nepotrebujete nič meniť, máte nastavený maximálny možný limit a aj keby ste túto hodnotu zvýšili, nebude to mať žiadny efekt.
Druhý krok - úprava súboru wp-config.php
V prípade, ak po úpravách php.ini máte stále nedostatok pamäte, skúste vo Wordpress napevno nastaviť maximálny možný limit. Ten totiž v základných nastaveniach pracuje tak, ako keby mal k dispozícii limit 64 MB.
Prihláste sa na Vaše FTP a v adresári, kde máte Wordpress nainštalovaný, nájdite súbor wp-config.php, ktorý si stiahnite do počítača, otvorte ho v nejakom editore a niekde okolo riadku 82 nájdite položku
/* That's all, stop editing! Happy publishing. */
hneď nad ňu vložte toto:
define( 'WP_MEMORY_LIMIT', '300M' );
Tento kód "prikáže" Wordpress, aby využíval pamäť až do 300 MB. Súbor uložte a vráťte na server, na pôvodné miesto. Ak ani v tomto prípade problémy s nedostatkom pamäte nezmiznú, v prípade inštalácie šablón alebo pluginov odporúčame kontaktovať ich autorov
Problémy so subdoménami
Ak nastane prípad, že pre hlavnú doménu máte nastavenú verziu PHP 5.x a pre subdoménu PHP 7.x, tak v tomto prípade sa pre subdoménu vyhradí pamäť maximálne 50 MB. Ak nastavíte rovnakú verziu pre celý web, tak aj pre subdomény bude vyhradená maximálna pamäť 300 MB. V prípade problémov kontaktujte našu technickú podporu support@exohosting.sk