Увеличиваем memory_limit PHP до 512 МБ для сложных операций (минимум 256 МБ)
Дата публикации: 24.06.2026

Увеличиваем memory_limit PHP до 512 МБ для сложных операций (минимум 256 МБ)

Хочу себе такие же кнопки
ccb9a536

Что вы получите сразу

  • Поймёте, почему 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. Как проверить текущий лимит

  1. Через phpinfo()

    <?php phpinfo(); ?>

    Откройте файл в браузере и найдите строку memory_limit.

  2. Через консоль (CLI)

    php -r "echo ini_get('memory_limit');"
  3. Внутри Битрикса
    Откройте /bitrix/modules/main/tools/diagnostics.php (или любой пользовательский скрипт) и выведите:

    echo 'memory_limit = '.ini_get('memory_limit');

Если значение меньше 256 МБ, то уже сейчас вы рискуете получить ошибку при обработке больших товаров, импорте CSV, генерации отчетов.


3. Как изменить memory_limit до 512 МБ

3.1. Через php.ini (рекомендованный способ)

  1. Найдите файл php.ini. На 🏰 VDSina он обычно лежит в /etc/php/7.4/fpm/php.ini (путь может отличаться).

  2. Откройте его в редакторе и замените строку:

    memory_limit = 128M

    на

    memory_limit = 512M
  3. Сохраните файл и перезапустите 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. Через админ‑панель Битрикса

  1. Перейдите в Настройки → Настройки продукта → Параметры PHP (если ваш шаблон поддерживает).
  2. В поле memory_limit укажите 512M.
  3. Сохраните и очистите кеш.

Совет: если пункт «Параметры PHP» отсутствует, используйте один из методов выше.


4. Проверка, что лимит действительно изменился

  1. Повторите phpinfo() – должно показывать memory_limit = 512M.

  2. Тестовый скрипт (вставьте в файл test_mem.php):

    <?php
    $a = str_repeat('x', 500 * 1024 * 1024); // 500 МБ строка
    echo 'OK, память выделена';

    При корректном лимите скрипт отработает без Fatal error.

  3. Логи – проверьте /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, вы можете быстро изменить параметр через панель управления:

VDSinaPHP Settingsmemory_limit512MSaveRestart PHP.

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


Практика для закрепления

  1. Проверка текущего лимита – выполните php -r "echo ini_get('memory_limit');" и запишите результат.
  2. Изменение через .htaccess – создайте файл .htaccess в корне сайта с директивой php_value memory_limit 512M. Затем откройте phpinfo() и убедитесь, что значение изменилось. Если получили ошибку сервера, объясните, почему это случилось.
  3. Тестовый скрипт – напишите скрипт, который заполняет массив до 400 МБ, и запустите его после изменения лимита. Что произойдёт, если лимит стоит 256 МБ?
  4. Оптимизация – найдите в своём проекте один запрос, который использует fetchAll(). Перепишите его, используя построчное чтение, и оцените экономию памяти (примерно в МБ).
  5. Лог‑анализ – откройте лог 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 блог для бизнеса
рейтинг хостингов 2026 Быстрые VDS серверы