Содержание
When we use ini_set like below in code, will memory limit be the same for all other codes? or only valid for in which code we added ?
2 Answers 2
It is only working for the file where it is written. Best way to change settings for multiple phps in the same folder are:
Keep in mind, this only works, if you server configuration allowes "AllowOverride" directive for this directory
You can do this in php.ini.
but this will take affect to ALL php-files you are running
Дата последнего входа: | 36 минут назад |
Город: | Ростов-на-Дону |
Наименование компании: | Аскарон системс |
С производительностью умного фильтра разобрались, теперь разберемся с расходом памяти.
Мы продолжаем наполнять каталог. Сейчас у нас всего 2000 свойств в инфоблоке. В одном из разделов 4000 товаров. Эти товары используют всего 10 свойств для умного фильтра. Но страница перестала открываться с ошибкой, что мало памяти.
Сначала было
@ini_set( "memory_limit", "512M" );
Я увеличил
@ini_set( "memory_limit", "1024M" );
На какое-то время хватило. Но скоро опять перестало открываться. Кто съел гигабайт? Этот код:
Функция CIBlockElement::GetPropertyValues выбирает все значения свойств, в том числе и для пустых. Значения пустых свойств false.
У нас получилось в массиве $arElements 4000 элементов по 2000 свойств в каждом. Всего на гигабайт в оперативной памяти.
Пришлось исправить. В $arNewElement попадают только те свойства, которые есть в умном фильтре и непустые.
Вы работали с конструктором страниц, делали слайдер или установили какой-то плагин и получили ошибку превышения лимита PHP памяти.
Это одна из самых частых ошибок Вордпресс, которую можно легко исправить увеличением лимита PHP памяти.
В этой статье вы узнаете, как исправить эту ошибку и увеличить лимит памяти WP вручную или с помощью плагина.
Содержание:
Что такое 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. Откройте его и добавьте такую запись:
Комментарий может быть любой, можно на русском языке. Добавьте эту запись в конце файла перед строкой Это всё, дальше не редактируем. Сохраните, загрузите. Очистите кеш, если вы пользуетесь плагином кеша.
2. Редактирование файла php.ini
В корневой папке сайта найдите или создайте файл php.ini. В стандартной установке WP этого файла нет.
Добавьте эту строку в файл:
Сохраните файл, очистите кеш.
3. Редактирование файла .htaccess
Этот файл тоже находится в корневой папке, но он может быть скрытым. Посмотрите в настройках файлового менеджера или FTP клиента, сделайте скрытые файлы видимыми.
Добавьте в файл эту запись:
php_value memory_limit 128M
Сохраните файл, очистите кеш.
В зависимости от настроек вашего сервера, какой-то способ может работать, какой-то — нет.
Если никакой из способов не сработал — обратитесь в техподдержку хостинга, возможно, стоят какие-то специальные ограничения на увеличение лимита памяти PHP, спецы из техподдержки могут увеличить ваш лимит вручную.