つい最近、当ブログ「近日出荷」の管理画面にログインしようとすると、「Fatal error: Allowed memory size of 268435456 bytes exhausted」とのエラーメッセージが出てログインできなくなりました。サイトの閲覧もできなくなり、非常に困ったのですが何とか解決できたので、その時の経験を書いておきます。同じエラーで困った方は、参考にしてみてください。
・「Fatal error: Allowed memory size of」はメモリ不足のエラー
・解決策1:メモリの上限を引き上げる
・解決策2:FTPソフトを使ってプラグインを停止する
なお、当ブログでは作業結果についていかなる責任も負えません。作業に際してはバックアップをとるなど、ご自身の慎重な判断の下で行うようお願いします。
ワードプレスの管理画面に入れない
「近日出荷」のメンテナンスのため、ワードプレスの管理画面にはほぼ毎日ログインしています。
(ワードプレスの管理画面)
その日も管理画面にログインして、「ブログ記事内のリンク修正」「画像ファイルの整理」「プラグインの更新」などの作業を行ってログアウトしたのですが、ブログ記事を更新したので画像ファイルをアップするために再度管理画面にログインしようとすると、
の文字が…。
「認められているメモリサイズを使い果たした」というエラーメッセージで「『wp-db.php』ファイルの1841行目に原因がある」と言うことらしいです。
「wp-db.php」ファイルの1841行目も確認しましたが…、
(な、何だ、この暗号みたいな文字は?)
さっぱり分かりません。
自力での解決は到底ムリなので、人に頼ることにしました。Googleで検索です。
解決策1:メモリの上限を引き上げる
面倒なので「Fatal error: Allowed memory size of エラー」で検索。すると、同じエラーを経験している人が結構いるらしく、解決策もばっちり書いてくれていました。
その方法は、エラーメッセージに真正面から対応するもので、メモリを引き上げるというもの。具体的には、「php.ini」ファイルを開いて編集する方法でした。ただ、「php.ini」ファイルがどこにあるのかよく分からないし、プログラムを直接書き換えるのも怖い。やることは簡単なんですが、プログラムを書き換えた結果、他のプログラムに影響が出てさらにエラーが出るのが面倒なんですよね。
そこで、もう少し調べてみると「php.ini」を簡単に編集できる方法を発見。サーバーのコントロールパネル(サーバーパネル)からphp.iniの設定を変更する方法です。
これなら、「メモリの上限を上げること」に絞ってプログラムを書き換えることができるので、他のプログラムに影響を与えてエラーが出るのを防ぐことができます。
ムダにリスクをとりたくないので、こっちで行くことにしました。
さくらインターネット
さくらインターネットの場合は、「サーバーコントロールパネル」にログインして、左サイドバーにある「PHP設定の編集」をクリック。
「php.ini 設定ファイル編集」が開くので、ここを編集します。メモリの上限を決めるのは「memory_limit =」のところ。ここの数字を変更しましょう。
数値をどれくらい引き上げるかですが、エラーメッセージにある数値を上回る程度に書き換えてみましょう。上で出てきた「268435456 bytes」は「256MB」なので「300MB」に変更します。
数値を変更したら「保存する」ボタンをクリックして作業完了です。
Xサーバー
Xサーバーの場合は、サーバーパネルにログインして、画面下部の「php.iniの設定」をクリック。
「ドメイン選択画面」に移るので、メモリの上限を引き上げるサイトを選択。
「php.ini設定」画面が開くので、「php.ini設定変更」タブを選びます。画面をスクロールすると「その他の設定」の中に「memory_limit」があるので、ここの数値を変更します。
数値を変更したら「設定する(確認)」ボタンをクリックして作業完了です。
Googleの検索結果で出てきたサイトではこれで解決していたんですが…、いっくらメモリを増やしても「Fatal error: Allowed memory size of ○○○○」の数字の所が増えるばかりで、全く解決しません!
「これは困ったぞ」と言うことで、別の方法を試すことになりました。
解決法2:プラグインを停止する
別の方法と言うのはプラグインを停止する方法です。
プラグインがエラーを起こした結果、メモリが不足するようになったのではないか?ということですね。でも、「管理画面に入れないのに、どうやってプラグインを停止するの?」という疑問が浮かびますが、これは、FTPクライアント※を使って解決します。
サイトを構築するプログラムをアップロード、ダウンロードするソフト。「FileZilla」「Cyberduck」などが有名。
まず、FTPクライアントを使ってサーバーに接続します(ここでは「Cyberduck」を使っています)。
(Cyberduckの画面。さくらインターネットに接続しています。)
プラグインを停止するサイトのワードプレスフォルダを開いて、「wp-content」にある「plugins」にカーソルを合わせて右クリックします。
リストが開くので「名前を変更」を選んで、フォルダ名を「plugins」から「plugin」に変更します。変更後の名前は「plugin」でなくてもいいのですが、とにかくフォルダ名を変更します。
ワードプレスでは、「plugins」フォルダにあるプログラムでプラグインが動くようになっているので、フォルダ名を変えてしまうとプラグインが動かなくなります。
これでプラグインを停止することができました。
これでようやく、エラーは解消!
無事、管理画面にログインできるようになりました(いやー、大変だったよ。ホントに)。
エラーの原因は「Calls to Action」
エラーが解消したのは良かったのですが、この状態ではプラグインがすべて停止しています。プラグインを元に戻すには、もう一度管理画面から「有効化」する必要があります。
ただ、同じプラグインを全て有効にしてしまうと、また「Fatal error: Allowed memory size of」のエラーが発生すること間違いなし(悪夢ががが…)。そこで、エラーの原因となったプラグインを特定するため、1つずつ順番に「有効化」して、そのつど管理画面にログインできるか確かめます。
順番にプラグインを「有効化」して確認していくと分かりました。エラーの原因になったプラグインが。私の場合は、「call to action」というプラグインでした。
このプラグイン、全ての記事の最下部にお知らせを表示してくれる便利なプラグインだったのですが、今は停止しています。何度かアップデートがあったので、現在は改善しているかもしれませんが、ちょっとこわいのでしばらくは様子見です。
ワードプレスではプラグインがとっても便利なんですけど、エラーもそこそこ出てくるので対処法を知っておくと安心ですよ。
まとめ
「Fatal error: Allowed memory size of」のエラーが出た場合の解決策は、php.iniでメモリの上限を引き上げるのが基本です。それでも解決しない場合は、FTPクライアントを使ってプラグインを停止してみましょう。