2016-10-03 12 views
1

最近WordPress Webサイトで気付いたことがあります。 。私は、ログをチェックし、私のような多くの行があります:私は、メモリの制限増加させようとしWordPress致命的なエラー:wp-includes/wp-db.phpの18,832行に536870912バイト(77バイトを割り当てようとしました)の空きメモリがありました

[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

あなたはRAMに500 + megsのデータをキャッシュする必要がありますか?もしあなたがしなければならないのは、メモリの上限を上げる/下げるか、システムを再構築することです。そうでなければ、基本的には「私は10リットルの水を1リットルのバケツに注ぎ込んだので、あふれてしまった。 –

+0

自分のサーバーまたはウェブホストですか? – markratledge

+0

@MarcB、あなたは分かりません。私は自分のウェブサイトにバグがあります。それは、5ウィジェット、メニューとポストループ(ページあたり20)と簡単なワードプレスのサイトです。私はなぜこれを超えてメモリ制限があるのか​​考えていません。 –

答えて

1

この問題は、iThemes Securityプラグインによって発生しています。私はそれをオフにし、エラーがなくなった。私はこの問題をさらに調査し、このプラグインのどの部分がメモリの限界を超えたのか分かったらこの答えを編集します。

0

定数WP_MEMORY_LIMITは、フロントエンドとバックエンドのためのWordPressのすべてのPHPプロセスのためのRAMを調節します。共有ホスティングでこれを使用します。定数WP_MAX_MEMORY_LIMITはバックエンドのRAMのみを制御します。 RAMが十分であり、管理するVPSサーバーなど、すべてを使用できることがわかっているときは、WP_MAX_MEMORY_LIMITを使用します。

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

私は「ライン1832上WP-をdb.php」と同じ問題を持っていたし、前に述べたようiThemesセキュリティー・プラグインを無効に私のためにうまくいきました。しかし、まだあなたのサイトを保護する必要がある場合、それは解決策ではありません。あなたがする必要がどのような

は、WP-コンテンツなど主要分野のディレクトリのパーミッションを修正することで、その他のwp-含まれています...

ゴーiThemesセキュリティ設定へ - >ファイルのアクセス権(設定の構成すべてのアクセス許可が適切に設定されているかどうかを確認してください。権限を修正したら、そのエラーはもう表示されません。

+0

OOMを引き起こすのはiThemes Securityの「データベースバックアップ」です。純粋にその機能を正常に無効にする必要があります。 –

0

iThemes Securityの "Database Backups"を無効にしてください。

関連する問題