Wp memory limit

Новые встроенные медиа плееры WordPress делают систему мощной платформой для потокового видео и аудио. Однако вы, вероятно, уже заметили, что WordPress имеет ограничения по максимальному размеру файлов, которые могут загружаться:

Если вы захотите узнать, каков лимит для вашего сайта, вы можете зайти в раздел «Медиафайлы» — «Добавить новый». Ниже в поле загрузки вы увидите надпись «Максимальный размер загружаемого файла» с числом рядом с ней в мегабайтах. Это число показывает, насколько большие файлы вы можете загрузить на свой сайт.

По умолчанию ограничение на размер загружаемых файлов установлено в пределах от 2 Мб до 128 Мб. Если в данный момент у вас установлен минимально возможный предел, то вы можете повысить его и получить возможность загружать большие медиа файлы.


К сожалению, для увеличения этого лимита недостаточно просто изменить это значение по умолчанию. То, насколько большие файлы вы сможете загружать на сайт, также зависит от настроек вашего сервера.

В конце концов, вам, возможно, придется поменять несколько вещей, прежде чем все заработает, как вам нужно. В этой статье мы шаг за шагом разберем все настройки, которые вам придется произвести, чтобы получить работающее решение.

Для большинства действий, которые потребуются, вам будет нужен доступ к сайту по FTP.

Настройка инфо файла PHP

Прежде чем начать пробовать различные решения, следует получить некоторые сведения о том, как настроен на вашем сайте PHP. К счастью PHP имеет простую функцию, которая поможет сделать это. Создайте в любом текстовом редакторе новый файл и добавьте в него следующую строку кода:

Назовите файл «info.php» и сохраните его. После этого перейдите по FTP в корневую папку вашего сервера, в которой установлен WordPress, и перетащите в нее файл info.php. Затем, перейдите по адресу «http://yoursite.com/info.php«, где «yoursite.com» заменяется фактическим URL-адресом вашего сайта. В результате вы получите полный список элементов конфигурации PHP:

Особое внимание обратите на версию PHP

Здесь очень много информации, но большую ее часть вы можете игнорировать. Самая важная часть этого файла — какая версия PHP у вас в данный момент работает. Это будет указано в верхней части печатными буквами, например “PHP Version 5.4.16«.


Самое важное — это первые числа номера версии. Это может быть либо PHP 4, либо PHP 5. Некоторые советы, изложенные здесь, потребуют, чтобы вы знали, какая версия у вас установлена, так что примите это к сведению.

Есть еще три настройки в инфо файле PHP, которые имеют отношение к теме нашей статьи. Вам нужно просмотреть данный файл, чтобы выяснить, какие значения для них на данный момент установлены.

memory_limit — определяет, сколько памяти выделяется на PHP. Вы просто должны убедиться, что это число равно или превышает лимит загрузки, который вы хотите установить.

post_max_size — определяет максимальный размер, который обрабатывается в запросе POST. Для этой настройки нам нужно будет установить значение нашего нового лимита загрузки.

upload_max_filesize — определяет максимально возможный размер загружаемого файла. Для этой настройки нам также нужно будет установить значение нашего нового лимита загрузки.

Теперь, когда у нас есть немного информации о конфигурации PHP, мы можем попробовать несколько различных методов увеличения лимита на размер загружаемых файлов.

Редактирование php.ini

Если вы зададите на поиск через Google способы повышения лимита загрузки в WordPress, вы, вероятно, получите разнообразные варианты решений.


Большинство из них — это обходные пути, но самый лучший способ увеличить лимит размера загружаемых файлов — это внести изменения в файл php.ini вашего сервера. php.ini файл содержит все элементы конфигурации РНР, и через него вы можете изменить значения, которые вы видели на странице информации о конфигурации PHP.

В зависимости от настроек вашего хостинга, вы можете получить возможность редактировать файл php.ini непосредственно. Чтобы найти этот файл, зайдите по FTP на свой сайт, и перейдите в папку, где установлен WordPress. Как правило, это папка “html” или “www”. Отсюда по FTP вам нужно перейти в верхнюю корневую папку. Это, как правило, папка на один или два уровня выше, чем та, где установлен WordPress.

Из корневой директории вашего сервера вы начинаете поиск папки, где размещен файл php.ini. Как правило, это папка “conf” или “etc”. Поищите файл «php.ini» в этих папках. Если найти его не удалось, обратитесь к справочным материалам вашего хостинга. Перетащите этот файл в какое-нибудь место на локальном жестком диске и откройте его в любом текстовом редакторе.

Нам нужно будет изменить в этом файле несколько значений, так что вам нужно будет производить поиск по файлу. Для демонстрации я хочу увеличить свой лимит загрузки до 64 МБ. Вы можете установить его выше, однако не рекомендуется устанавливать новое значение больше, чем 128 Мб:

Фрагмент содержимого из файла php.ini

Во-первых, найдите значение параметра «memory_limit» и измените его на 64M (если оно уже не установлено на 64M или больше). Далее, найдите параметр «post_max_size» и измените его значение на 64M. Наконец, найдите «upload_max_filesize» и снова измените его значение на 64M. Важно при определении лимита использовать обозначение «M», а не обычно используемое MB.


Вы также можете найти переменную «max_execution_time» и установить для нее значение что-то вроде 300. Это гарантирует, что ваш сайт не даст сбой при загрузке больших файлов.

В конечном итоге ваши значения будут выглядеть следующим образом:

Только эти значения будут разбросаны по всему файлу. Когда вы закончите, сохраните файл и перетащите его обратно в папку, где находится ваш файл php.ini и перезапишите существующий файл. Пока эти изменения вступят в силу, может пройти некоторое время. Если вы используете выделенный сервер и имеете соответствующие права, попробуйте перезагрузить сервер.

Если вы не знаете точно, как перезагрузить сервер, проконсультируйтесь со службой поддержки вашего хостинг-провайдера. В противном случае, убедитесь, что кэш вашего браузера и сайта очищен. И будем надеяться, что, когда вы снова перейдете в раздел Медиафайлы — Добавить новый, вы увидите, что там уже прописан новый максимальный размер загружаемого файла. Значит наша цель достигнута.

Загрузка собственного файла php.ini

Если вы не можете найти файл php.ini или не имеете к нему доступа, вы сможете загрузить свой файл, чтобы переопределить параметры по умолчанию. Чтобы сделать это, создайте новый файл и откройте его в текстовом редакторе. Затем вставьте в него следующий код:


Опять-таки, я устанавливаю лимит загрузки 64MB, но вы можете установить значение, которое нужно вам.

Помните, выше я упоминал о необходимости знать версию PHP? Если вы работаете на PHP версии 4, то сохраняйте это файл, как «php.ini«. Если на PHP версии 5, сохраняйте его, как «php5.ini«. Если случится, что вы работаете на версии 5, но приведенное выше имя файла не работает, вы можете переименовать файл в «php.ini» и загрузить его снова:

Файл php.ini в FTP-клиенте Cyberduck

После этого снова перейдите по FTP на ваш сайт и найдите корневую папку, где размещаются файлы WordPress. Перетащите файл в эту папку.

Опять же, если у вас есть возможность перезагрузить сервер вы должны это сделать, а затем очистите кэш браузера и сайта. Чтобы удостовериться, действительно ли работает этот метод, перейдите в раздел Медиафайлы -> Добавить новый, и, если максимально возможный размер файла увеличился, значит все в порядке.

Использование файла .user.ini

Если приведенный выше метод не сработал, вы можете использовать другой вариант. Он будет работать, только если вы используете PHP версии 5. В противном случае, вы можете пропустить этот раздел.


Создайте новый файл и на этот раз назовите его «.user.ini«. В этот файл вставьте следующий код:

Вы можете изменить значение 64M на то, что вам нужно. Сохраните этот файл, а затем перетащите его в папку, где у вас установлен WordPress. Если у вас есть возможность перезагрузить сервер, сделайте это. Изменения могут вступить в силу через некоторое время. Подождите немного, после чего перейдите в раздел Медиафайлы -> Добавить новый.

Возможно, вам подойдет решение с помощью .htaccess

Если вы перепробовали все методы, связанные с php.ini, и ни одно из них вам не подошло, возможно, решение проблемы заключается в использовании файла .htaccess. В общем, .htaccess используется для настройки сервера Apache. Тем не менее, этот файл также может быть использован для изменения значений PHP, если ваша версия PHP установлена, как модуль Apache.

Перед тем, как редактировать файл .htaccess, убедитесь, что у вас есть резервная копия его текущей версии. Изменения в этом файле могут привести к внутренним ошибкам сервера или вы вообще увидите пустой экран. Данные ошибки легко исправить — достаточно всего лишь перезагрузить файл .htaccess.

Чтобы получить доступ к этому файлу, перейдите в корневую папку WordPress. Убедитесь, что в вашем FTP-клиенте включена возможность просмотра скрытых файлов, после чего откройте файл «.htaccess«. В нижней части файла вставьте следующий код:

Затем сохраните изменения на сервере. Перейдите на свой сайт и проверьте, не возникли ли какие-либо ошибки с отображением контента. После этого вы можете перейти в раздел панели администрирования Медиафайлы -> Добавить новый, чтобы посмотреть, вступили ли в силу изменения лимита загрузки.


Если вы столкнулись с какими-нибудь проблемами с отображением сайта, загрузите файл резервной копии .htaccess, который вы сохранили ранее на диске.

Конфигурационный файл WordPress

Если ничего из этого не помогло, есть еще одна возможность, которую Вы можете использовать. Для этого потребуется напрямую редактировать файлы WordPress.

Первым делом зайдите через FTP на сервер и перетащите файл «WP-config.php«, расположенный в корневой папке, на свой компьютер, чтобы вы могли его редактировать. Откройте файл и внизу добавьте следующую строку:

Затем загрузите этот файл обратно на сервер.

Перейдите в папку активной темы и перетащите на компьютер файл «functions.php«, чтобы его можно было редактировать. Откройте файл и в самом верху добавьте:

Это делает возможным редактирование файла php.ini вашего сервера во время выполнения. Исторически так сложилось, что это наиболее эффективное решение. Очистите кэш браузера и сайта, и перейдите в раздел Медиафайлы -> Добавить новый, чтобы посмотреть, вступил ли в силу новый лимит.

Обращение за помощью к поддержке хостинг-провайдера

Если ни один из вышеперечисленных способов не сработал, вы можете обратиться к службе поддержки вашего хостинг — провайдера. Скажите, что вы хотите увеличить значения «memory_limit«, «upload_max_size» и «post_max_size» в файле php.ini.


Большинство хостеров сделают это для вас без проблем. Если они не позволяют вам этого сделать, либо же вообще не отвечают, возможно, пришло время поискать новый хостинг.

Увеличение лимита загрузки на MAMP

Бывает, вы разрабатываете свой сайт локально и хотите увеличить свой лимит на локальном сервере. Если вы работаете на Mac, вы можете использовать MAMP, локальный сервер, который дает доступ к Apache, MySQL и PHP. Другими словами, всему, что нужно для запуска WordPress.

К счастью, в MAMP у вас будет доступ к файлу php.ini, вы просто должны знать, где этот файл найти. Первым делом вы должны перейти в раздел “PHP info”, расположенный на рабочем столе MAMP, сверху. Здесь выясните текущую версию PHP.

После того, как вы узнаете это, перейдите по адресу “/Applications/MAMP/bin/php/PHP_VERSION/conf”. В папке “php” вы увидите список различных версий PHP, поэтому будьте внимательны, чтобы перейти к версии, на которой работает в данный момент ваша система. Здесь вы можете файл открыть «php.ini«, а дальше следуйте инструкциям, приведенным выше.

В конечном счете, вы должны будете изменить названные переменные, чтобы они выглядели следующим образом:

И в вашей локальной среде будет установлен новый лимит на размер загружаемых файлов.


Увеличение лимита загрузки на WAMP

В Windows аналог MAMP называется WAMP. Как и в случае с MAMP, вы будете иметь доступ к файлу php.ini. Чтобы найти его, перейдите по адресу “C:WampDeveloperConfigPhpphp.ini” и откройте файл php.ini. Внесите описанные выше изменения, которые относятся к лимиту загрузки в WordPress:

После изменения этих параметров, лимит загрузки будет увеличен.

www.internet-technologies.ru

How WordPress defines memory limits

WordPress defines and sets memory limits in the file ./wp-includes/default-constants.php, on lines 32 – 44 (source: https://github.com/WordPress/WordPress/blob/master/wp-includes/default-constants.php):

$current_limit = @ini_get( 'memory_limit' ); $current_limit_int = wp_convert_hr_to_bytes( $current_limit );  // Define memory limits. if ( ! defined( 'WP_MEMORY_LIMIT' ) ) { 	if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) { 		define( 'WP_MEMORY_LIMIT', $current_limit ); 	} elseif ( is_multisite() ) { 		define( 'WP_MEMORY_LIMIT', '64M' ); 	} else { 		define( 'WP_MEMORY_LIMIT', '40M' ); 	} }

The PHP resource limit memory_limit is changeable in PHP_INI_ALL, meaning it can be set (changed) anywhere – normally. This should return true for wp_is_ini_value_changeable( 'memory_limit' ).

This defines WP_MEMORY_LIMIT as 40M as lower limit – for a single site installation, when memory_limit may be changed.

And back to the Jupiter theme. Take a look at the phpIniCheck() function. Here’s the logic of what it does:


  1. is WP_MEMORY_LIMIT defined and smaller than 100663296 bytes (96 MB)?
  2. throw an error

We’ve just learned that normally WP_MEMORY_LIMIT is defined to a lower limit of 40M, because memory_limit may be changed anywhere by PHP, and then wp_is_ini_value_changeable returns true.

The check Artbees/Jupiter uses, checks if the 40M WP_MEMORY_LIMIT is lower than 96M (100663296 bytes). The check evaluates as $true, setting the variable $incorrect_memory_limit to true, and the error message is displayed.

Pff… Someone really needs to look at this WP_MEMORY_LIMIT logic in WordPress…

WPML?

You mentioned WPML? Yes I did.

In sitepress-multilingual-cms/classes/troubleshoot/class-wpml-debug-information.php WPML inaccurately assumes WP_MEMORY_LIMIT is the current imposed memory limit:

function get_core_info() {  	$core = array( 		// ... 		'PHP' => array( 			'MemoryLimit' => ini_get( 'memory_limit' ), 			'WP Memory Limit' => WP_MEMORY_LIMIT, 			'UploadMax' => ini_get( 'upload_max_filesize' ), 			'PostMax' => ini_get( 'post_max_size' ), 			'TimeLimit' => ini_get( 'max_execution_time' ), 			'MaxInputVars' => ini_get( 'max_input_vars' ), 			'MBString' => $this->sitepress->get_wp_api()->extension_loaded( 'mbstring' ), 			'libxml' => $this->sitepress->get_wp_api()->extension_loaded( 'libxml' ), 		), 	);  	return $core; }

If you want to define WP_MEMORY_LIMIT, do it properly in your wp-config.php file

The fix for all this is quite easy. But only do this if plugins/themes won’t work properly otherwise!

Define WP_MEMORY_LIMIT in your wp-config.php file, and set it to your current PHP memory_limit:

define( 'WP_MEMORY_LIMIT', ini_get( 'memory_limit' ) );

Add the above line just before the line “/* That’s all, stop editing! Happy blogging. */“.

Setting this constant may throw a PHP Notice when put below this line. The PHP Notice is for example (on one line):
PHP Notice:  Constant WP_MEMORY_LIMIT already defined in
/path/to/example.com/www/wp-config.php on line 96

As always, it’s best to trust your hosting provider and to not fiddle with memory settings. WordPress loving hosting providers -like Vevida.com– will set reasonable limitations, as you may expect. So your WordPress website always runs as smooth as possible.

If you are a WordPress plugin or theme developer: Please stay away from fiddling with PHP/WordPress memory limits. If you are a WordPress user: don’t fiddle with PHP/WordPress memory settings either!

Questions? Remarks? Leave them as a comment please, thanks!


www.saotn.org

После активации WooCommerce можно столкнуться (а можно и не столкнуться Wp memory limit» class=»alignleft» alt=»:D» title=»Big Grin :D» />) со следующей заморочкой: на вкладке "Состояние системы" напротив графы "Предел памяти WP" выводится следующее предупреждение: "WP Memory Limit 40MB — We recommend setting memory to at least 64MB…" При этом MEMORY_LIMIT может быть у Вас совсем не 40 Мб, а значительно больше – 128, 256, или даже 512 Мб, что озадачивает вдвойне, поскольку памяти вроде как много, а вроде как и нет. Wp memory limit» class=»alignleft» alt=»:confused:» title=»Confused :confused:» /> В данной ситуации ругаться с хостером и наезжать на него бесполезно, так как хостер здесь абсолютно не причем. Wp memory limit» class=»alignleft» alt=»:)» title=»Smile :)» /> Вам нужно увеличить объем памяти самостоятельно в самом WordPress. Wp memory limit» class=»alignleft» alt=»;)» title=»Wink ;)» />

Для того, чтобы увеличить MEMORY_LIMIT нужно в файле wp-config.php непосредственно перед строчкой /* Это всё, дальше не редактируем. Успехов! */ добавить строку define(‘WP_MEMORY_LIMIT’, ’96M’). Выглядит это так:

После внесения этой строчки MEMORY_LIMIT увеличится до нужных Вам 96Мб Wp memory limit» class=»alignleft» alt=»:D» title=»Big Grin :D» />, в чем можно убедиться, вновь просмотрев информацию о MEMORY_LIMIT во вкладке "Состояние системы":

MEMORY_LIMIT не обязательно должен быть 96 Мб. Устанавливайте сколько Вам нужно, или допустимо на вашем хостинге, только имейте ввиду, что определяющее значение имеет место прописывания строки define(‘WP_MEMORY_LIMIT’, ’96M’). Wp memory limit» class=»alignleft» alt=»;)» title=»Wink ;)» /> Если вставить ее куда-то ни туда, то MEMORY_LIMIT может и не сдвинуться "с мертвой точки". Wp memory limit» class=»alignleft» alt=»:(» title=»Frown :(» />

wpcommerce.ru

В произвольный момент времени любой разработчик, создающий тему или плагин, либо просто пользователь, работающий с WordPress, может столкнуться с ошибкой Fatal Error: Memory Exhausted (память исчерпана). Обычно эта ошибка выглядит следующим образом:

Fatal error: Allowed memory size is 268435456 bytes exhausted (tried to allocated 29596635 bytes) in …/wp-includes/wp-db.php on line 885.

Безусловно, ваше сообщение об ошибке может иметь несколько иной вид, однако смысл его одинаков: вы столкнулись с ошибкой, она имеет отношение к доступному объему памяти, вы знаете, какой именно объем памяти был затребован, а также какой файл вызвал ошибку.

По моему мнению, одна из самых заметных проблем с такими вот ошибками – это слишком быстрое нахождение решения в Google, ведь люди не стараются понять проблему.

Да, у нас под рукой всегда имеются материалы, которые прекрасно спасают в беде. Однако стоит помнить, что понимание проблемы помогает нам расширить свой багаж опыта, развивать и совершенствовать свой уровень.

В данной ситуации очень полезно разобраться с тем, почему возникла такая ошибка.

Ошибка нехватки памяти в WordPress

Используя приведенное выше сообщение, мы можем сказать, что выделенный объем памяти составляет 268435456 байт. Однако кто сейчас считает в байтах?

Нам гораздо удобнее оперировать мегабайтами, гигабайтами и терабайтами (хотя если у вас такой объем памяти, и вы столкнулись с указанной ошибкой, то это – совсем другая история).

Переводим байты в мегабайты

Первое, что мы сделаем – это переведем байты в мегабайты. Сделать это можно, к примеру, с помощью Google — достаточно ввести в поисковую строку следующий текст:

268435456 bytes to megabytes

В итоге мы получим результат:

bytes_to_mb

Очень удобно. Но что нам делать с этой информацией?

Во-первых, мы должны понимать, что у нас есть предел в 256 Mb памяти, которая доступна для использования в WordPress и PHP, и этой памяти не хватает для совершения операций.

Честно говоря, ограничения нужно выставлять для PHP, однако я буду работать с WordPress, поскольку часть решения проблемы может включать в себя определение новой константы. Однако об этом – через одно мгновение.

Настройка PHP

Нужно понимать то, что PHP имеет лимит памяти, а также то, что вы можете в некотором роде управлять им через WordPress. Обычно есть две вещи, которые нужно сделать, чтобы убедиться в том, что проблема решена в полном объеме.

Но сначала надо узнать, какую именно версию PHP вы используете. Если вы работаете с PHP на локальной машине, то вы, скорее всего, сможете найти версию PHP в панели управления своего веб-сервера:

php_adjust

В противном случае версия должна отображаться где-либо в пределах панели управления вашего хостинг-аккаунта.

Это даст нам понять, какой конфигурационный файл PHP нужно редактировать. В частности, вам нужно найти файл php.ini, который связан с вашей версией PHP.

Если у вас установлена только одна версия, прекрасно; иначе вам нужно будет найти файл php.ini для вашей определенной версии PHP, которая в данный момент запущена.

Увеличиваем лимит памяти

Как только вы найдете файл php.ini, взгляните на директиву memory_limit.

php_memory

На скриншоте выше можно видеть, что лимит памяти установлен в 25 Mb, что явно меньше требуемого нам. Потому нам понадобится увеличить его до, скажем, 128 Mb, после чего перезапустить сервер.

Что делать, если WordPress по-прежнему жалуется на ошибку?

В данном случае вам, возможно, понадобится внести одно дополнительное изменение в файл wp-config.php. Есть две константы, которые мы можем определить:

  1. WP_MEMORY_LIMIT
  2. WP_MAX_MEMORY_LIMIT

Узнать подробнее про них можно в кодексе. Как показывает мой опыт, удобнее всего определить сразу две константы, чем одну WP_MEMORY_LIMIT.

Я упомянул это, потому что в сети ходят советы, согласно которым можно просто задать WP_MEMORY_LIMIT. Я не говорю, что это неправильно – просто у меня были наилучшие результаты, когда были определены обе константы.

По аналогии с php.ini, добавляем в wp-config.php следующие значения:

define('WP_MEMORY_LIMIT', '128M'); define('WP_MAX_MEMORY_LIMIT', '128M');

Это должно решить проблему.

Также можно задать следующее правило в .htaccess:

php_value memory_limit 256M

Несколько слов о выделении памяти

Хочу сказать еще пару слов о выделении памяти. Несмотря на то, что самое простое решение – это увеличить доступную память, его не обязательно нужно делать в самом начале.

Фактически, я прибегаю к нему уже под конец, когда ничего не помогает.

Зачастую эта проблема является результатом работы какого-либо фрагмента кода, процедуры или определенного алгоритма – все это можно усовершенствовать и оптимизировать.

Таким образом, обязательно проверьте ваш код – используйте различные инструменты отладки и тестирования, чтобы исключить неэффективные участки. Если таковых нет, то тогда уже можно прибегать к корректировке памяти.

Источник: tommcfarlin.com

oddstyle.ru

What to Set Your WordPress Memory Limit and PHP Memory Limit to

This is a tricky question, and it may require you to contact your host. There are a few things we can do before it comes down to that, however, and they are:

  • Determine the max memory limit set in default-constants.php.
  • Trial and error.

Many of these solutions require you to access your site’s files, so I’ll go over how to do that via FTP for those who are still new to the more technical sides of WordPress.

How to Access Your WordPress Site’s Files via FTP

I’ll use FileZilla for this example, but know that there are plenty of other FTP clients out there. Click here to download a version of FileZilla compatible with your operating system.

Download the installer, and run the installer to install FileZilla. Launch it once it’s finished.

FileZilla Settings

Click File in the menu at the top, and select Site Manager. Enter your site name to label your site, and enter these settings:

  • Host – Your domain example.com
  • Port – Leave blank.
  • Protocol – FTP – File Transfer Protocol
  • Encryption – Only use plain FTP (insecure)
  • Logon Type – Normal

Use the username and password you use to log into your host’s site manager as your username and password for your FTP server. If your host uses cPanel, enter the username, and password you use to access cPanel.

Open the Transfer Settings tab, and check the box for Limit Number of Simultaneous Connections. Enter 8 as the Maximum Number of Connections.

Click Connect to access your site’s files through the FTP server.

Finding Your Site’s WordPress Memory Limit

We can see what our WordPress memory limit is currently being set to by viewing the default-constants.php file. This file contains a few lines of code that deal with memory limits in WordPress.

Root Directory public_html

Open your root directory in FileZilla. This is typically called public_html.

Open your site’s wp-includes file, and find your default-constants.php file. Double-click it to download it to your computer.

Open it with a text editor on your system. You should see a few lines of code that relate your site’s memory limit toward the top of this file:

WordPress Memory Limit

What this tells us is that the memory limit in WordPress is set to 64MB for multisite installations and 40MB for regular WordPress sites. The WP_MAX_MEMORY_LIMIT setting underneath those lines of code relate to the amount of memory you’re allowed to use on the administrative side of things.

Basically:

  • WP_MEMORY_LIMIT = front end
  • WP_MAX_MEMORY_LIMIT = back end

This is how we’ll change our site’s WordPress memory limit in the wp-config.php file. We’ll use the define function from the default-constants.php file in the wp-config.php file to override the limit set in the default-constants.php file.

Determining What to Set Your Site’s PHP Memory Limit to

This is where things get a little tricky. How much memory you need depends on a few different factors, mainly the number of plugins you use and how much media exists (and will exist) on your site.

Generally, though, you should choose a number larger than what you found in the default-constants.php file, but it ultimately depends on which file you choose to edit, as you’ll see below.

This is also where we get into the “setting PHP memory limit through trial and error” thing. If you are trying to correct an error by increasing your site’s memory limit, you may need to try a base number first, test your site, and raise the number if your first test does not the correct the issue.

Be sure not to raise this number too high as it could crash your server. It’s unlikely, but it’s better to be safe than sorry. It’s difficult to give a particular maximum number, but you shouldn’t increase the number to anything that’s much higher than you need.

Basically, start at a number that’s higher than the default you found in the default-constants.php file (if you’re editing the wp-config.php file), and increase the number from there as you need.

It’s not recommended, but you can create a file called phpinfo.php. Add this code to it, and upload it to your root directory:

<?php phpinfo(); ?>

The information collected in this file will include what your PHP memory limit is currently set at. However, this is not recommended for novice users as having this file on your site leaves you vulnerable to hackers.

Let’s get into it.

Increasing Your PHP Memory Limit and WordPress Memory Limit

Only try one of these solutions at a time. If you cannot make one work, make sure you delete the codes from your files before moving onto the next solution.

Go back to your site’s root directory (public_html). If you see folders called wp-content, wp-admin and wp-includes, you’re in the right place.

Before you get started, clear your browser’s cookies and cache to ensure neither of those are affecting the way your site is appearing in your browser.

Increasing Your PHP Memory Limit in php.ini

Open your wp-admin folder, and see if a file called php.ini or php5.ini is there. It likely won’t be, but double-click it if it is download the file to your computer, and open it.

Open a text editor on your computer if the file isn’t there.

If you are editing your php.ini or php5.ini file, find the line that contains memory_limit and an M value, and change it to this:

memory_limit 512M

If you are creating your own file, add this code to your text editor:

memory_limit 512M

Save the file, and name it php.ini, like so:

Increase PHP Memory Limit in php.ini

If you’re new to FileZilla and FTP clients in general, you’ll notice there are four “views” or “panels” in FileZilla. Take a look at the bottom two, which are side by side. Use the one on the left to find the location on your computer where you saved the php.ini file.

Make sure your wp-admin folder is still open in the right panel. Once you’re certain it is, drag the php.ini file from the left panel over to the right panel to upload the file to your site. Overwrite the original one if you were editing an existing php.ini file.

Refresh FileZilla

Refresh the FTP client, as depicted in the image above. If you are increasing your memory limit to correct a specific error on your site, refresh your site to see if the error goes away. If it does not, try increasing the 512M value to something else. Alternatively, you can try renaming the php.ini file to php5.ini.

Remove the php.ini file from your site if you choose to use another solution.

Increasing Your PHP Memory Limit in .htaccess

You can also increase your PHP memory limit with your .htaccess file. This file is located in your root directory. It’s a “dotfile,” which are typically hidden by default in some FTP clients. If you don’t see yours, click Server in FileZilla, and select Force Showing Hidden Files:

Force Showing Hidden Files

Double-click the file to download it to your computer, and open it. Add this bit of code to it, or edit the line that’s already there if you find it:

php_value memory_limit 512M

Save the file, and upload it to your root directory, overwriting the original file. Refresh the FTP client, and refresh your site to see if the error you were trying to correct goes away. Try increasing the value if it does not.

Remove the code from the file and re-upload it to your site if you choose to try another solution.

Increasing Your WordPress Memory Limit in wp-config.php

Double-click your wp-config.php file to download it to your system. Open it in a text editor, and add this bit of code to it:

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

Save the file, and re-upload it to your root directory, overwriting the original. Refresh the FTP client, and refresh your site to see if the error goes away. Increase the value of 64M as necessary.

If you are getting errors while working in the admin area of WordPress, try adding the WP_MAX_MEMORY_LIMIT code beneath the memory limit code, like so:

define(‘WP_MEMORY_LIMIT’, ‘64M’);  define(‘WP_MAX_MEMORY_LIMIT’, 128M’);

Increase the max memory limit as necessary. Just make sure it’s always higher than the WordPress memory limit.

Contacting Your Host – Your Last Resort

Many hosts limit the amount of memory your server is allowed to use, especially shared hosts. In fact, many shared hosting providers don’t even give you access to your php.ini file, so if you’re having trouble fixing an error using that method, your host’s limitations may be to blame.

All in all, if you have no success by trying to increase your PHP memory limit or WordPress memory limit yourself, you may need to have your site change your limit for you. Your last last resort is to upgrade your entire hosting package. It might be a good idea to do so, anyway, especially if you’ve been on a shared hosting server for a while.

Check out Nick’s comparison of the 5 best hosting providers for WordPress. This post also contains great information on the different types of hosting available for WordPress sites.

fancythemes.com

Attempts to raise the PHP memory limit for memory intensive processes.

Only allows raising the existing limit and prevents lowering it.

Хуки из функции
Возвращает

true/false/Число/Строку. The limit that was set or false on failure.

Использование

wp_raise_memory_limit( $context );
$context(строка)
Context in which the function is called. Accepts either 'admin', 'image', or an arbitrary other context. If an arbitrary context is passed, the similarly arbitrary {@see ‘{$context}_memory_limit’} filter will be invoked.
По умолчанию: ‘admin’

Код wp raise memory limit: wp-includes/functions.php VER 5.1.1

<?php function wp_raise_memory_limit( $context = 'admin' ) { 	// Exit early if the limit cannot be changed. 	if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) { 		return false; 	}  	$current_limit = @ini_get( 'memory_limit' ); 	$current_limit_int = wp_convert_hr_to_bytes( $current_limit );  	if ( -1 === $current_limit_int ) { 		return false; 	}  	$wp_max_limit = WP_MAX_MEMORY_LIMIT; 	$wp_max_limit_int = wp_convert_hr_to_bytes( $wp_max_limit ); 	$filtered_limit = $wp_max_limit;  	switch ( $context ) { 		case 'admin': 			/** 			 * Filters the maximum memory limit available for administration screens. 			 * 			 * This only applies to administrators, who may require more memory for tasks 			 * like updates. Memory limits when processing images (uploaded or edited by 			 * users of any role) are handled separately. 			 * 			 * The `WP_MAX_MEMORY_LIMIT` constant specifically defines the maximum memory 			 * limit available when in the administration back end. The default is 256M 			 * (256 megabytes of memory) or the original `memory_limit` php.ini value if 			 * this is higher. 			 * 			 * @since 3.0.0 			 * @since 4.6.0 The default now takes the original `memory_limit` into account. 			 * 			 * @param int|string $filtered_limit The maximum WordPress memory limit. Accepts an integer 			 * (bytes), or a shorthand string notation, such as '256M'. 			 */ 			$filtered_limit = apply_filters( 'admin_memory_limit', $filtered_limit ); 			break;  		case 'image': 			/** 			 * Filters the memory limit allocated for image manipulation. 			 * 			 * @since 3.5.0 			 * @since 4.6.0 The default now takes the original `memory_limit` into account. 			 * 			 * @param int|string $filtered_limit Maximum memory limit to allocate for images. 			 * Default `WP_MAX_MEMORY_LIMIT` or the original 			 * php.ini `memory_limit`, whichever is higher. 			 * Accepts an integer (bytes), or a shorthand string 			 * notation, such as '256M'. 			 */ 			$filtered_limit = apply_filters( 'image_memory_limit', $filtered_limit ); 			break;  		default: 			/** 			 * Filters the memory limit allocated for arbitrary contexts. 			 * 			 * The dynamic portion of the hook name, `$context`, refers to an arbitrary 			 * context passed on calling the function. This allows for plugins to define 			 * their own contexts for raising the memory limit. 			 * 			 * @since 4.6.0 			 * 			 * @param int|string $filtered_limit Maximum memory limit to allocate for images. 			 * Default '256M' or the original php.ini `memory_limit`, 			 * whichever is higher. Accepts an integer (bytes), or a 			 * shorthand string notation, such as '256M'. 			 */ 			$filtered_limit = apply_filters( "{$context}_memory_limit", $filtered_limit ); 			break; 	}  	$filtered_limit_int = wp_convert_hr_to_bytes( $filtered_limit );  	if ( -1 === $filtered_limit_int || ( $filtered_limit_int > $wp_max_limit_int && $filtered_limit_int > $current_limit_int ) ) { 		if ( false !== @ini_set( 'memory_limit', $filtered_limit ) ) { 			return $filtered_limit; 		} else { 			return false; 		} 	} elseif ( -1 === $wp_max_limit_int || $wp_max_limit_int > $current_limit_int ) { 		if ( false !== @ini_set( 'memory_limit', $wp_max_limit ) ) { 			return $wp_max_limit; 		} else { 			return false; 		} 	}  	return false; }

wp-kama.ru

Что такое PHP память и для чего она используется

Объем PHP памяти определяет, сколько PHP данных может обрабатываться за определенное количество времени для выполнения какой-то задачи.

Одна из причин, по которой ограничивается количество PHP памяти — чтобы не дать одному сайту использовать все ресурсы сервера и замедлить другие сайты на этом сервере.

Как узнать сколько PHP памяти выделено

По умолчанию Вордпресс выделяет 40 MB для обычного сайта и 64 MB для мультисайта.

Если у вас установлен WooCommerce, зайдите в WooCommerce — Статус — Состояние системы  — WP Memory Limit. Некоторые темы, пейдж-билдеры и плагины безопасности показывают эту информацию, попробуйте найти. Если вы не можете найти, проверьте это плагином Server IP & Memory Usage Display или TPC! Memory Usage (оба бесплатные) или еще чем-то подобным.

Сколько PHP памяти нужно

В зависимости от плагинов, которые вы используете, увеличьте до 128 MB. Если у вас много плагинов, или магазин на WooCommerce — увеличьте до 256 MB.

1. Редактирование файла wp-config.php

Через файловый менеджер на хостинге или через FTP клиент зайдите в корневую папку сайта и найдите файл wp-config.php. Откройте его и добавьте такую запись:

Комментарий может быть любой, можно на русском языке. Добавьте эту запись в конце файла перед строкой Это всё, дальше не редактируем. Сохраните, загрузите. Очистите кеш, если вы пользуетесь плагином кеша.

https://codex.wordpress.org/Editing_wp-config.php#Increasing_memory_allocated_to_PHP

2. Редактирование файла php.ini

В корневой папке сайта найдите или создайте файл php.ini. В стандартной установке WP этого файла нет.

Добавьте эту строку в файл:

memory_limit = 128M;

Сохраните файл, очистите кеш.

3. Редактирование файла .htaccess

Этот файл тоже находится в корневой папке, но он может быть скрытым. Посмотрите в настройках файлового менеджера или FTP клиента, сделайте скрытые файлы видимыми.

Добавьте в файл эту запись:

php_value memory_limit 128M

Сохраните файл, очистите кеш.

В зависимости от настроек вашего сервера, какой-то способ может работать, какой-то — нет.
Если никакой из способов не сработал — обратитесь в техподдержку хостинга, возможно, стоят какие-то специальные ограничения на увеличение лимита памяти PHP, спецы из техподдержки могут увеличить ваш лимит вручную.

Способ 4

Если вы не хотите редактировать файлы, для увеличения лимита памяти WP есть бесплатные плагины. Минус этого способа в том, что плагин всегда тяжелее, чем строка кода, это микроскопически отразится на скорости вашего сайта, — в некоторых ситуациях ваш сайт будет грузиться на несколько миллисекунд медленнее.

Используйте этот способ, когда у вас нет доступа к сайту по FTP.

Надеюсь, статья была полезна. Оставляйте комментарии.

techbear.ru

Via wp-config.php

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

WooCommerce recommends at least 64M. 128M should be enough for most sites, but if you run resource intensive plugins, you may have to go higher. You can increase it incrementally until you can complete the task that triggered the message.

To increase the memory limit for the administration area:

define( 'WP_MAX_MEMORY_LIMIT', '256M' ); 	
B

Via PHP.ini

If you find that defining the limit in the wp-config file is not working, you might have to address it a level up — that is in your PHP configuration file, known as php.ini.

Depending on your host, you may or may not have access to this file, and you may or may not be able to create your own. Search your webhost’s knowledge base for php.ini and you should come up with where to locate the file.

Then add, or adjust the following line:

memory_limit = 128M ; Maximum amount of memory a script may consume (128MB) 	
C

Via .htaccess

If you don’t have access to your php.ini file, sometimes you can use your .htaccess file to set the memory limit:

php_value memory_limit 128M 	

docs.wp-rocket.me


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Adblock
detector