WordPress 致命错误:第 1832 行 wp-includes/wp-db.php 中允许的内存大小为 536870912 字节已用尽(尝试分配 77 字节)

我最近在我的 WordPress 网站上注意到我有时会收到 500 内部服务器错误.我检查了日志,我有很多行,例如:

I noticed recently on my WordPress website I'm getting sometimes 500 Internal Server Error. I checked logs and I have many lines like:

[2016 年 10 月 3 日星期一 01:25:24.357439] [fcgid:warn] [pid 12840] [client83.27.211.107:36968] mod_fcgid:stderr:PHP 致命错误:允许的内存大小为 536870912 字节已用尽(尝试分配 77 字节)在/var/www/vhosts/mywebsite/public_html/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

我尝试增加内存限制:

定义('WP_MAX_MEMORY_LIMIT', '512M');

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

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

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

甚至更多,但它没有用.无论我设置什么,它仍然超出内存限制一些字节.我认为对数据库的某些查询存在问题,但如何检查?

And even more, but it didn't work. No matter what I set it still exceeding memory limit by some bytes. I think there's a problem with some queries to a database, but how to check which?

includes/wp-db.php 的内容:

Content of the includes/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;
}

推荐答案

问题是由 iThemes Security 插件引起的.我把它关掉了,错误就消失了.如果我知道这个插件的哪一部分导致超出内存限制,我会进一步调查这个问题并编辑这个答案.

The problem was caused by iThemes Security plugin. I turned off it and errors have gone. I'll investigate this problem more and edit this answer if I'll know what part of this plugin caused exceeding memory limit.

相关文章