[WordPress] Backwpupの処理中にエラー: Allowed memory size of 268435456 bytes exhausted が発生

WordPress

このブログはWordpressで運用していて、Backwpupプラグインを使って定期的にバックアップを取っています。最近、バックアップ時にメモリ不足でエラーが出るようになりました。困ったのでメモしておきます。

どこかでメモリ上限を256MB(268435456)に設定していて、それを使い果たしているようです。php7-fpm/www.conf とか探し回ったけど、設定がみつからない。

[XX-Jan-2019 XX:XX:XX] 1. データベースをバックアップします…
[XX-Jan-2019 XX:XX:XX] localhost のデータベース wordpress_funifuni に接続しました
[XX-Jan-2019 XX:XX:XX] エラー: Allowed memory size of 268435456 bytes exhausted (tried to allocate 258048 bytes)
[XX-Jan-2019 XX:XX:XX] 警告: ジョブが5分以上無動作により再起動します。
[XX-Jan-2019 XX:XX:XX] 2. データベースをバックアップします…
[XX-Jan-2019 XX:XX:XX] localhost のデータベース wordpress_funifuni に接続しました
[XX-Jan-2019 XX:XX:XX] エラー: Allowed memory size of 268435456 bytes exhausted (tried to allocate 217088 bytes)
[XX-Jan-2019 XX:XX:XX] 警告: ジョブが5分以上無動作により再起動します。
[XX-Jan-2019 XX:XX:XX] 3. データベースをバックアップします…
[XX-Jan-2019 XX:XX:XX] localhost のデータベース wordpress_funifuni に接続しました
[XX-Jan-2019 XX:XX:XX] エラー: Allowed memory size of 268435456 bytes exhausted (tried to allocate 225280 bytes)
[XX-Jan-2019 XX:XX:XX] 警告: ジョブが5分以上無動作により再起動します。
[XX-Jan-2019 XX:XX:XX] エラー: ステップを中止: 回数が多すぎます!



WordPress自体の上限だった

探し回っても見つからないのは当然で、実はWordpress自身が上限を設定していました。wp-includes/default-constants.php に次のように書かれています。

    // Define memory limits.
    if ( ! defined( 'WP_MEMORY_LIMIT' ) ) {
        if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) {
            define( 'WP_MEMORY_LIMIT', $current_limit );
        } elseif ( is_multisite() ) {
            define( 'WP_MEMORY_LIMIT', '64M' );
        } else {
            define( 'WP_MEMORY_LIMIT', '40M' );
        }
    }

    if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) ) {
        if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) {
            define( 'WP_MAX_MEMORY_LIMIT', $current_limit );
        } elseif ( -1 === $current_limit_int || $current_limit_int > 268435456 /* = 256M */ ) {
            define( 'WP_MAX_MEMORY_LIMIT', $current_limit );
        } else {
            define( 'WP_MAX_MEMORY_LIMIT', '256M' );
        }
    }
wp-includes/default-constants.php



WP_MEMORY_LIMITはWordpressの通常処理(ブログ表示)で使うメモリの上限、WP_MAX_MEMORY_LIMITは管理画面が使うメモリの上限です。
今回は“Allowed memory size of 26843545”とエラー表示されていたので、管理用のメモリが不足していたのでしょう。

wp-config.pho に設定を追加して解決しました。

define( 'WP_MAX_MEMORY_LIMIT’, '384M’ );

WordPress

Posted by ず@沖縄