Обмеження пам'яті в WordPress

tl; dr: значення, встановлене вручну, або значення за замовчуванням WP_MEMORY_LIMIT/WP_MAX_MEMORY_LIMIT не мають ефекту, якщо WP_MEMORY_LIMIT/WP_MAX_MEMORY_LIMIT менше або дорівнює обмеженню пам’яті PHP (далі memory_limit називається) є. Вони використовуються для встановлення занадто низьких значень memory_limit динамічно до рекомендованого мінімуму.


  • Константа WP_MEMORY_LIMIT можна за бажанням в wp-config.php з define('WP_MEMORY_LIMIT', 'XXXM'); бути встановленим.
  • Константа WP_MAX_MEMORY_LIMIT можна за бажанням в wp-config.php з define('WP_MAX_MEMORY_LIMIT', 'XXXM'); бути встановленим.
  • Є WP_MEMORY_LIMIT не встановлено, застосовує значення за замовчуванням:
    • memory_limit, за умови значення memory_limit не можна змінювати динамічно,
    • 64 МБ, якщо це мультисайт,
    • 40 МБ інакше.
  • Є WP_MAX_MEMORY_LIMIT не встановлено, застосовує значення за замовчуванням:
    • memory_limit, за умови значення memory_limit не змінюється динамічно або якщо він необмежений (-1) або більше або дорівнює 256 МБ,
    • 256 МБ інакше.
  • Значення за замовчуванням були підвищені знову і знову в минулому.
  • WP_MEMORY_LIMIT змінено всюди за допомогою функції ini_set() динамічний memory_limit, якщо WP_MEMORY_LIMIT більший за нинішній memory_limit або коли WP_MEMORY_LIMIT необмежений (-1).
  • WP_MAX_MEMORY_LIMIT змінено у серверній частині (точніше: кожного разу, коли функція wp_raise_memory_limit() викликається в різних контекстах [admin, image]) за допомогою функції ini_set() динамічний memory_limit, якщо WP_MAX_MEMORY_LIMIT більший за нинішній memory_limit або коли WP_MAX_MEMORY_LIMIT необмежений (-1).
  • Логіка WP_MAX_MEMORY_LIMIT біжить після логіка WP_MEMORY_LIMIT, так що WP_MEMORY_LIMIT у інтерфейсі і WP_MAX_MEMORY_LIMIT набуває чинності у серверній частині.
  • Значна частина логіки, описаної вище, працює wp_initial_constants() (/wp-includes/default-constants.php) а саме wp_raise_memory_limit() (/wp-includes/functions.php) замість.
  • Значення memory_limit = XXXM в php.ini Визначаються memory_limit (після перезапуску веб-сервісу).
  • Значення php_value memory_limit XXXM в .htaccess Визначаються memory_limit для всіх файлів PHP у папці або її вкладеній папці, у якій знаходиться файл .htaccess розташований.
  • Веб-сервер може запобігти зміні значення ліміту пам’яті за допомогою ini_set() або перевищенню вказаного значення (див. php_admin_value ).
  • memory_limit застосовується для кожного процесу: збільшення на memory_limit може призвести до зменшення кількості паралельних запитів PHP. Тому значення слід вибирати обережно (256 МБ, у виняткових випадках 512 МБ).
  • У серверній частині WordPress у розділі Інструменти > Стан веб-сайту значення memory_limit (Розділ: Сервер), а також від WP_MEMORY_LIMIT і WP_MAX_MEMORY_LIMIT (розділ Константи WordPress) можна прочитати.
Назад