簡體   English   中英

WordPress 致命錯誤:第 1832 行的 wp-includes/wp-db.php 中允許的內存大小為 536870912 字節(試圖分配 77 字節)

[英]WordPress Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 77 bytes) in wp-includes/wp-db.php on line 1832

我最近在我的 WordPress 網站上注意到我有時會收到 500 內部服務器錯誤。 我檢查了日志,我有很多行,例如:

[Mon Oct 03 01:25:24.357439 2016] [fcgid:warn] [pid 12840] [client 83.27.211.107:36968] mod_fcgid:stderr:PHP 致命錯誤:允許分配的內存大小為 536877709 字節 5368709在第 1832 行的 /var/www/vhosts/mywebsite/public_html/wp-includes/wp-db.php

我試圖增加內存限制:

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

定義('WP_MEMORY_LIMIT','512M');

甚至更多,但它沒有用。 無論我設置什么,它仍然超出了一些字節的內存限制。 我認為對數據庫的某些查詢有問題,但如何檢查哪個?

include/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 插件引起的。 我關掉它,錯誤消失了。 如果我知道此插件的哪一部分導致超出內存限制,我將進一步調查此問題並編輯此答案。

我遇到了與“ wp-db.php on line 1832 ”相同的問題,並且禁用了之前提到的iThemes Security 插件對我來說效果很好。 但是,如果您仍然需要保護您的網站,這不是解決方案。

您需要做的是修復關鍵區域的目錄權限,例如 wp-content、wp-includes 等...

轉到iThemes 安全設置 ->文件權限(配置設置)並檢查所有權限是否設置正確。 一旦按預期修復權限,您就不會再看到該錯誤。

禁用 iThemes Security 中的“數據庫備份”對我有用。

常量WP_MEMORY_LIMIT為前端和后端的 WordPress 的所有 PHP 進程調節 RAM。 在共享主機上使用它。 常量WP_MAX_MEMORY_LIMIT調節后端的 RAM。 當您知道自己有足夠的 RAM 並且可以使用所有 RAM 時,您可以使用WP_MAX_MEMORY_LIMIT ,例如在您管理的 VPS 服務器上。

回到

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

並刪除您正在運行的那些查詢(如上),然后查看該站點是否恢復正常。 如果是這樣,那就是問題所在; 處理這些查詢是一個不同的問題。

如果這是共享主機,則您正在使用這些查詢殺死服務器; 如果這是您自己的服務器,則需要配置 MySQL/PHP 以進行緩存和高負載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM