2016-10-03 8 views
1

Я недавно заметил на своем веб-сайте WordPress, я иногда получаю 500 Internal Server Error , Я проверил журналы и у меня есть много линий, таких как:WordPress Неустранимая ошибка: допустимый размер памяти 536870912 байт исчерпан (пытался выделить 77 байт) в wp-includes/wp-db.php в строке 1832

[Mon Oct 03 01:25:24.357439 2016] [fcgid:warn] [pid 12840] [client 83.27.211.107:36968] mod_fcgid: stderr: PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 77 bytes) in /var/www/vhosts/mywebsite/public_html/wp-includes/wp-db.php on line 1832

Я попытался увеличить лимит памяти:

define('WP_MAX_MEMORY_LIMIT' , '512M');

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

И еще больше, но это не сработало. Независимо от того, что я установил, он все еще превышает пределы памяти на некоторые байты. Я думаю, что есть проблема с некоторыми запросами в базе данных, но как проверить, какой?

Содержание включает/WP-db.php:

} else { 
    $num_rows = 0; 
    if ($this->use_mysqli && $this->result instanceof mysqli_result) { 
     while ($row = mysqli_fetch_object($this->result)) { 
      $this->last_result[$num_rows] = $row; 
      $num_rows++; 
     } 
    } elseif (is_resource($this->result)) { 
     // server crashing at line below 
     while ($row = mysql_fetch_object($this->result)) { 
      $this->last_result[$num_rows] = $row; 
      $num_rows++; 
     } 
    } 

    // Log number of rows the query returned 
    // and return number of rows selected 
    $this->num_rows = $num_rows; 
    $return_val  = $num_rows; 
} 
+0

так что спросите себя ** ПОЧЕМУ ** вам нужно кэшировать 500 + мегабайт данных в ram. Если у вас есть, то ваш выбор состоит в том, чтобы либо повысить/удалить ограничение памяти, либо перестроить вашу систему, чтобы вам не понадобилось столько материала в памяти одновременно. В противном случае вы в основном спрашиваете: «Я налил 10 литров воды в 1-литровое ведро, и он переполнился, как я могу держать его в форме переполненным?» –

+0

Ваш собственный сервер или веб-хостинг? – markratledge

+0

@MarcB, вы не понимаете. У меня есть ошибка на моем сайте. Это простой сайт WordPress с 5 виджетами, циклом меню и сообщений (20 на страницу). У меня нет идеи, почему это превышение предела памяти вообще. –

ответ

1

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

0

Константа WP_MEMORY_LIMIT регулирует RAM для всех процессов PHP для WordPress для передней и бэкэндов. Используйте это на общем хостинге. Константа WP_MAX_MEMORY_LIMIT регулирует ОЗУ только для бэкэнд. Вы используете WP_MAX_MEMORY_LIMIT, когда знаете, что у вас достаточно ОЗУ, и можете использовать все это, например, на сервере VPS, которым вы управляете.

Вернуться к

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

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

Если это общий хостинг, вы убиваете сервер этими запросами; если это ваш собственный сервер, вам нужно настроить MySQL/PHP для кеширования и больших нагрузок.

+0

Кажется, он копирует/вставляет основной файл WP. Я был бы удивлен, если бы это оказалось виновником. – RST

+0

Я отредактировал мое сообщение. Я забыл упомянуть, что часть кода, который я опубликовал, это wp-incudes/wp-db.php. Итак, я не знаю, где запрос, вызвавший эту ошибку. Возможно, это из плагина, что сайт работал правильно несколько недель назад. –

+0

@RST, да, я забыл упомянуть об этом. Сожалею. –

1

Я была такая же проблема с «в.ч.-db.php на линии 1832» и отключить плагин iThemes безопасности, как уже упоминалось ранее работал хорошо для меня. Однако, если вам по-прежнему необходимо защитить свой сайт, это не решение.

Что вам нужно сделать, это исправить права доступа к директориям ключевых областях, таких как WP-содержание, сор-включает в себя и т.д. ...

Перейти к iThemes безопасности Настройки ->Права доступа к файлам (Настройка параметров) и проверьте, правильно ли установлены все разрешения. Как только вы исправляете разрешения, как они должны быть, вы больше не увидите эту ошибку.

+0

Это «резервное копирование базы данных» iThemes Security, которое вызывает OOM. Чисто отключите эту функцию. –

0

Отключить резервное копирование базы данных в iThemes Security для меня.

 Смежные вопросы

  • Нет связанных вопросов^_^