Co je to memory_limit a k čemu slouží?

Memory_limit je jeden z parametrů, na které bychom měli dát pozor při výběru webhostingu. V tomto článku se podíváme, jaká velikost je optimální a co vlastně memory_limit znamená.

Odkaz: PHP memory_limit na webu php.net

Co je to memory_limit?

PHP memory_Limit je množství paměti, kterou může daný proces použít na Vašem serveru. Kdykoli klient odešle požadavek na Váš webový server a PHP jej vyřídí, zahájí proces PHP. Pokud překročíte nastavený limit paměti, proces selže a Apache to nahlásí jako chybu HTTP 500.

Kdy přemýšlet o změně PHP memory_limit?

O zvýšení limitu můžeme uvažovat z důvodu, že skript stránky nebo php způsobuje chybu memory_limit kvůli nedostatku paměti.

Chyba se může projevovat výpisem této hlášky:

Fatal error: Allowed memory size of x bytes exhausted (tried to allocate x bytes) in /path/to/php/script

nebo

PHP Fatal error: Out of memory (allocated x) (tried to allocate x bytes) in /path/to/php/script

U WordPressu se může objevovat bílá obrazovka. Vše potřebné pak naleznete ve výpisu z error_log

Globální změna PHP memory_limit

Tato akce vyžaduje pokročilejší znalosti a provádí se pouze v případě, že máte dostatek prostředků na serveru (nemůžete zvyšovat paměť na 1GB memory_limit, když Váš server tolik paměti nemá) a v případě, že nevyužíváte sdílený hosting. Typicky se tato úprava týká VPS a serverů.

Toto nastavení je tedy globální a je pro všechny PHP operace a scripty na serveru.

Jak změnit PHP memory_limit na vašem VPS nebo serveru?


Každý server má na základě své konfigurace jeden nebo několik souborů php.ini. Musíte jen najít vhodný soubor php.ini, abyste mohli upravit a změnit hodnotu memory_limit.

Chcete-li zjistit umístění souboru php.ini můžete přes SSH na svém serveru spustit jeden z těchto příkazů:

php --ini

nebo

find / -iname php.ini

nebo

php -i | grep php.ini

Výše uvedené příkazy vyhledají umístění Vašich souborů php.ini. Jednoduše přejděte do tohoto umístění a podle potřeby soubor upravte. Samozřejmě vytvořte zálohu daného souboru, pokud si úpravou nejste jisti.

Jak změnit PHP memory_limit v .htaccess?

Důvodem, proč měnit PHP memory_limit přes .htaccess může být ten, že nemusíte mít dostatečné oprávnění, nebo zkušenosti ke změně tohoto nastavení v php.ini
Nicméně to nemusí být vždy vhodně řešení – obzvláště v případě, kdy je podpora .htaccess vypnuta. Pak taková změna nemá požadovaný efekt.

Pokud tedy měníte memory_limit přes .htaccess, tak přidejte následující řádek na začátek Vašeho souboru .htaccess v kořenovém adresáři.

php_value memory_limit 256M

Jak změnit PHP memory_limit ve WordPressu?

Po změně memory_limitu na serveru budete muset u Vašeho WordPress webu změnit ještě nastavení paměti přímo ve WordPressu.

V souboru wp-config.php, přímo v kořenovém adresáři instalace WordPressu musíte přidat následující řádek před řádek, který říká: „To je vše, zastavte úpravy! Příjemné blogování.“ („That’s all, stop editing! Happy blogging.“):

define( 'WP_MEMORY_LIMIT', '256M' );

Soubor je samozřejmě potřeba uložit a nahrát na server (pokud needitujete přímo na serveru – FTP)

Jak zkontrolovat aktuální verzi PHP a PHP memory_limit?

Stačí vytvořit jednoduchý php soubor (třeba info.php) a do něj vložit tyto řádky:

<?php
phpinfo();
?>

Tento soubor nahrajte na Vaše FTP a poté si jej normálně zobrazte v prohlížeči vasedomena.cz/info.php

Výsledkem je pakvýpis kompletního PHP info. Položku memory_limit pak můžete snadno najít přes CTRL+F a zadáním „memory_limit“.

Výsledek pak může vypadat třeba takto:

php.ini
php.ini
memory_limit
memory_limit

Optimální velikost memory_limit?

Otázka memory_limit je poměrně ošemetná. Obzvláště pak v souvislosti se sdílenými hostingy.

Je fajn mít memory_limit 1GB a využívat tolik paměti naplno, ALE:

Je potřeba si uvědomit, že na sdíleném hostingu toto mohou využívat všichni. Takže pokud desítka a nebo stovka uživatelů začne využívat tolik paměti najednou, tak se to zákonitě projeví i na zátěži daného serveru a tato akce může ovlivnit všechny weby, které na serveru jsou.

Nízký memory_limit zase zajistí nižší zátěž (co se paměti týče), ale řada redakčních systému a scriptů s tím může mít problém.

Pro bezproblémový chod WordPress vyžaduje alespoň 128MB memory_limit. Tyto hodnoty má většina webhostingových tarifů, které máme v databázi. Pro rychlejší orientaci přikládáme odkazy na jednotlivé filtry php memory_limit.

Takže ano. Větší memory_limit umožňuje využívat více paměti na jednotlivé scripty, ale je třeba brát v potaz možnou zátěž na daném serveru z důvodu vyšších limitů memory_limit.

Rate this post

Podobné příspěvky

Jeden komentář

Napsat komentář

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

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..