Увеличиваем memory_limit PHP до 512 МБ для сложных операций (минимум 256 МБ)
Хочу себе такие же кнопкиЧто вы получите сразу
- Поймёте, почему memory_limit часто становится «узким местом» при работе сложных модулей 1с‑Битрикс.
- Научитесь быстро проверить текущий лимит и изменить его до 512 МБ (минимум 256 МБ) без перезапуска сервера.
- Узнаете, какие варианты изменения работают в разных окружениях php.ini, .htaccess, .user.ini, админ‑панель Битрикса).
- Сможете проверить, что изменения действительно вступили в силу, и избежать типичных ошибок, приводящих к «White screen of death».
1. Почему именно memory_limit?
| Параметр | Что контролирует | Последствия превышения |
|---|---|---|
| memory_limit | Максимальный объём ОЗУ, который скрипт может выделить в процессе выполнения. | При нехватке – Fatal error: Allowed memory size exhausted, сайт «падает» или откликается очень медленно. |
| max_execution_time | Время выполнения скрипта. | Не влияет на память, но часто меняется вместе с memory_limit. |
| post_max_size / upload_max_filesize | Размеры загружаемых файлов. | Не связаны с памятью, но могут вызвать дополнительные запросы к памяти при обработке больших файлов. |
В типичном магазине на Битриксе в один запрос могут задействовать сразу несколько модулей: поиск, каталоги, цены, кеш, генерацию PDF‑отчётов. Каждый из них «тянет» часть памяти, а суммарно легко превысить 128 МБ, что является заводским значением большинства хостингов.
Аналогия: представьте, что ваш скрипт – это кулинар, а память – это столешница. Если столешница маленькая, вы не сможете одновременно подготовить все ингредиенты, и готовка займет часы. Увеличивая столешницу (memory_limit), вы даёте себе пространство для «многозадачности».
2. Как проверить текущий лимит
-
Через phpinfo()
<?php phpinfo(); ?>Откройте файл в браузере и найдите строку memory_limit.
-
Через консоль (CLI)
php -r "echo ini_get('memory_limit');" -
Внутри Битрикса
Откройте /bitrix/modules/main/tools/diagnostics.php (или любой пользовательский скрипт) и выведите:echo 'memory_limit = '.ini_get('memory_limit');
Если значение меньше 256 МБ, то уже сейчас вы рискуете получить ошибку при обработке больших товаров, импорте CSV, генерации отчетов.
3. Как изменить memory_limit до 512 МБ
3.1. Через php.ini (рекомендованный способ)
-
Найдите файл php.ini. На 🏰 VDSina он обычно лежит в
/etc/php/7.4/fpm/php.ini(путь может отличаться). -
Откройте его в редакторе и замените строку:
memory_limit = 128Mна
memory_limit = 512M -
Сохраните файл и перезапустите PHP‑FPM/Apache:
sudo systemctl restart php7.4-fpm # или sudo systemctl restart apache2
Важно: если у вас несколько PHP‑версий, измените именно ту, которая обслуживает ваш сайт.
3.2. Через .htaccess (для Apache)
Если доступ к php.ini закрыт, можно задать лимит на уровне каталога:
# .htaccess в корне сайта
php_value memory_limit 512M
Примечание: не все хостинги позволяют менять php_value в .htaccess. При ошибке «Internal Server Error» уберите строку.
3.3. Через .user.ini (для PHP‑FPM)
Создайте (или отредактируйте) файл .user.ini в корне сайта:
memory_limit = 512M
PHP‑FPM автоматически перечитывает .user.ini каждые 5 секунд (параметр user_ini.refresh).
3.4. Через админ‑панель Битрикса
- Перейдите в Настройки → Настройки продукта → Параметры PHP (если ваш шаблон поддерживает).
- В поле memory_limit укажите
512M. - Сохраните и очистите кеш.
Совет: если пункт «Параметры PHP» отсутствует, используйте один из методов выше.
4. Проверка, что лимит действительно изменился
-
Повторите phpinfo() – должно показывать
memory_limit = 512M. -
Тестовый скрипт (вставьте в файл
test_mem.php):<?php $a = str_repeat('x', 500 * 1024 * 1024); // 500 МБ строка echo 'OK, память выделена';При корректном лимите скрипт отработает без Fatal error.
-
Логи – проверьте
/var/log/php7.4-fpm.log(или аналогичный) на наличие сообщенийAllowed memory size exhausted.
5. Как избежать «переполнения» даже при 512 МБ
| Проблема | Как её решить |
|---|---|
Большие массивы (например, fetchAll() без ограничения) |
Используйте fetch() в цикле, а не fetchAll(). |
| Генерация PDF/Excel | Пишете в файл на диск, а не держите всё в памяти. |
| Кеширование | Отключите cache_type в модулях, которые не нужны в продакшене. |
| Неосвобождённые переменные | После их использования вызывайте unset($var); и gc_collect_cycles();. |
| Бесконечные рекурсии | Проверьте функции‑обработчики событий, они часто вызывают друг друга. |
6. Лучшие практики для стабильного сайта на Битриксе
| Практика | Почему полезно |
|---|---|
| Устанавливайте минимум 256 МБ даже на небольших проектах | Позволяет безопасно обрабатывать импорт/экспорт. |
| Для «тяжёлых» магазинов (много товаров, сложные цены) ставьте 512 МБ | Охватывает типичную нагрузку без риска падения. |
| Если планируете более 10 000 товаров – рассматривайте Hi‑CPU и memory_limit = 1024M | Память и процессор работают в паре, ускоряя запросы. |
| Регулярно проверяйте логи | Ошибки памяти часто появляются только в пиковые часы. |
| Тестируйте на стенде перед изменением лимита в продакшене | Позволяет увидеть, как изменится потребление ОЗУ. |
7. Как задать лимит в 🏰 VDSina (VDS)
Если ваш сервер находится у нашего партнёра VDSina, вы можете быстро изменить параметр через панель управления:
VDSina → PHP Settings → memory_limit → 512M → Save → Restart PHP.
Важно: после изменения перезапустите только тот сервис, который обслуживает ваш сайт, чтобы не прервать работу других приложений.
Практика для закрепления
- Проверка текущего лимита – выполните
php -r "echo ini_get('memory_limit');"и запишите результат. - Изменение через .htaccess – создайте файл
.htaccessв корне сайта с директивойphp_value memory_limit 512M. Затем откройтеphpinfo()и убедитесь, что значение изменилось. Если получили ошибку сервера, объясните, почему это случилось. - Тестовый скрипт – напишите скрипт, который заполняет массив до 400 МБ, и запустите его после изменения лимита. Что произойдёт, если лимит стоит 256 МБ?
- Оптимизация – найдите в своём проекте один запрос, который использует
fetchAll(). Перепишите его, используя построчное чтение, и оцените экономию памяти (примерно в МБ). - Лог‑анализ – откройте лог PHP‑FPM и найдите последние сообщения о
Allowed memory size exhausted. Сколько раз они появлялись за последний месяц? Что вы можете сделать, чтобы уменьшить их количество?
Поздравляю! Теперь вы уверенно управляете параметром memory_limit, знаете, как быстро увеличить его до 512 МБ и как избежать типичных проблем, связанных с нехваткой памяти в Битриксе. Применяйте полученные навыки, и ваш сайт будет работать стабильно даже при высоких нагрузках.
CamZamZam - онлайн фото с вебкамеры с эффектами
Cartoon Network: игры с персонажами
Чат рулетка в 2026: будущие функции
Эксперт по доменным стратегическим решениям
Хостинг для e-commerce проектов
Как играть в слоты
Как настроить CDN для сайта на хостинге Host.bg
Как настроить SSL-сертификат для сайта на Host.bg
Как оптимизировать производительность сайта с хостингом Host.bg
Как выбрать правильный хостинг для вашего сайта
Какие бывают ЛОР болезни у детей
Кассовые терминалы с оплатой картами
LOL куклы витрина детская
Лучшие видеорегистраторы для водителей
Онлайн QR-код сканер
Онлайн-связь
Оптимизация производительности баз данных на хостинге Host.bg
Основы настройки веб-хостинга: что вам нужно знать
Партнёрская программа без блога: как получать трафик из Telegram
Профессиональные хитрости для пользователей хостинга Host.bg
Регистрация ИП в Москве для иностранных граждан
Сравнение хостинга Host.bg с другими провайдерами
Субтитры — нет, уши — включены: погружение в английский за 5 минут
Сумки с бусинами
Техника для строительства загородных трасс
ТОП-10 VPS для разработчика: рейтинг серверов под рабочие задачи
WordPress блог для бизнеса