CloudLinux環境に於けるBackWPupの「PHP Fatal error: Allowed memory size of …」への対応

WordPressで構築したサイトのバックアップには「BackWPup」プラグインを利用しているのですが、サーバー(mixhost)側でマイグレーションが行われた後バックアップのジョブが必ず失敗するようになってしまいました。

[05-Mar-2019 02:04:14 UTC] PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 2746709976 bytes) in /home/xxxxxxxx/public_html/xxxxxxxx/wp-content/plugins/backwpup/inc/class-mysqldump.php on line 506

エラーログには上のようなメッセージがずらり。どうやらMySQL絡みの問題らしくバックアップ対象からデータベースを外せばジョブは問題なく完走しますが、それでは何の解決にもなっていないので調査を開始。

メッセージの内容からしてメモリ絡みの問題っぽいので、PHP.iniの「memory_limit」の値を上限まで増やしてみるも特段の変化はなし。

ってか、メモリを「2,746,709,976 byte(=約2.5GB!!)確保しろ」というメッセージ自体そもそもおかしいだろ…ということでそれらしい情報をググってみましたが日本語でそれらしい情報に言及したサイトが見当たらなかったので、海外の技術板を中心に捜索してみたところ解決の糸口を発見。


どうやらmixhostが利用しているOS「CloudLinux」で提供される最新のPHP 7.3(Alt-PHP update)では「mysqli」及び「pdo_mysql」がサポートされなくなった様子。これが不具合なのか恒久的な仕様変更なのかはっきりしませんが、CloudLinux側は「nd_mysqli」「nd_pdo_mysql」を利用するよう呼び掛けているようなのでPHP Selectorで設定変更。

「mysqli」と「pdo_mysql」に代えて「nd_mysqli」「nd_pdo_mysql」を有効化

「mysqli」と「pdo_mysql」のチェックを外し、代わりに「nd_mysqli」「nd_pdo_mysql」をチェックして保存するだけ。

これによりBackWPupのジョブも無事動作するようになりました。

    このサイトは reCAPTCHA によって保護されており、Google のプライバシーポリシー および 利用規約 に適用されます。

    reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

    頂戴したコメントは管理者に承認されるまで表示されません。また、メールアドレスが公開されることはありません。
    このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシー利用規約が適用されます。