「Fatal error: Allowed memory size…exhausted」エラーの対処方法【WordPressトラブル】

WordPress

Fatal error: Allowed memory size...exhausted エラーの対処方法 WordPressトラブル

WordPress サイトでブラウザ画面に次のようなエラーが表示され、画面の一部(または全部)が表示されなくなる場合があります。

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 134217736 bytes) in /home/<user name>/<site url>/public_html/wp-includes/formatting.php on line 604

この記事では、WordPress がインストールされたレンタルサーバーを使用している方向けに、このエラーの原因と対処方法を説明いたします。

 

Allowed memory size of … exhausted の原因

WordPress は PHP というプログラミング言語で記述され、動作しています。
このエラーは、サーバー上で PHP プログラムが実行された際、「プログラム実行用に割り当てられたメモリを使い切ってしまった」場合に表示されます。

Fatal error が発生すると、PHP はプログラム(この場合は WordPress)の処理を止めてしまいますので、WordPress が正常に動作せずに画面真っ白、という状態になるわけです。
ひどい場合には、管理画面すら表示できない場合もあります。

そのため、このエラーを解消するには次の2通りの方法があります。

 

対処方法1:WordPress が使用するメモリを減らす

まずは、何をやったらエラーが出るようになったかを、冷静に考えてみてください。

  • 新しいプラグインをインストールした
  • 新しい記事を投稿した(特定の記事でエラーがでている)
  • 記事に新たにコードなどを追加した

などでエラーが発生することがありますので、その原因を取り除いていきます。

 

WordPress のプラグインを停止する

WordPress のプラグインは便利ですが、あれもこれもと使いすぎると、メモリを大量に消費する重いサイトになりがちです。
新しいプラグインをインストールしたあとにエラーが発生するようになった場合は、そのプラグインを停止して、エラーが解消されるかを確認します。

解決しない場合や新しいプラグインを追加していない場合は、インストールされているプラグインを1つずつ停止して、エラーが解消されるかを確認します。

新規投稿や追記した記事を修正する

新しい記事を投稿したり、記事に文章・画像・コード(SNS の埋め込みコードなど)などを追加した際に、ページが使用するメモリ量が増えてエラーが発生する場合があります。
そのようになった場合は、次の方針で確認します。

  • 記事に文章、画像、SNSの埋め込みコードなどを追加してからエラーが出るようになった場合は、追加したものを消して、エラーが解消されるか確認します。
  • エラーが解消されない場合や元に戻せない場合は、該当記事を一旦削除して、新規に作り直します。内容をコピーしてメモ帳などに保存しておくと、再作成がラクですね。

WordPress テーマのウィジェットなどを変更してからエラーが出るようになった場合は、ウィジェットを外すなどして解消するか確認してみてください。

 

対処方法2:WordPress が使用できるメモリを増やす

WordPress が使用するメモリを減らすことができれば、その方が望ましいです。大量のメモリを使えるレンタルサーバーは費用も高くなりますからね。

ただ、それで解決しない場合や、そもそも管理画面が表示されなくなってしまった場合には、WordPress が使用できるメモリ量を増やす必要があります。(どこまでメモリを増やせるかはレンタルサーバーによります)

▼ 追記 ▼
設定ファイルをパソコン上で直接編集する場合は、メモ帳を使用しないでください。「UTF-8」「BOMなし」の文字コードで読み込み・保存できるテキストエディタが必要です。(サクラエディタなど)
▼ 注意 ▼
設定ファイルの変更は、操作を間違えると WordPress が動作しなくなるなどのリスクがありますので、対処方法1で解決できない場合の手段と考えてください。

 

php.ini ファイルで設定を変更する

php.ini は PHP の動作環境を設定するためのファイルです。
このファイルを編集できるレンタルサーバーであれば、メモリ設定を変更することでエラーを解消できる場合があります。

筆者は「エックスサーバー」を利用していますが、エックスサーバーでは管理メニューから php.ini と後述の .htaccess を設定変更することができます。

▼ エックスサーバーでの手順 ▼
1. サーバーパネルへログインし、「php.ini設定」をクリック。
2. 「php.ini設定変更」タブを選択。
3. 「memory_limit」の値を変更(設定例は後述)して、「確認画面へ進む」をクリック。
4. 設定内容を確認し、間違いがなければ「実行する」をクリック。

 

設定値を冒頭のエラーの場合で考えると、

tried to allocate 134217736 bytes

134,217,736 bytes(約128Mbyte)を使おうとして、

Allowed memory size of 268435456 bytes exhausted

割り当てられた 268,435,456 bytes(256Mbyte)を使い切ってしまった。

ということなので、割り当てメモリを 512Mbyte に変更します。
その場合の設定値は、以下になります。

memory_limit = 512M

 

wp-config.php ファイルで設定変更

wp-config.php は WordPress の動作環境を設定するためのファイルです。
このファイルを編集する場合は、FTP でサーバーに接続して、WordPress インストールフォルダにある wp-config.php をダウンロードします。
※ダウンロードしたファイルは念のためバックアップを取っておいてください。

以下を追記してファイルを保存し、元のディレクトリにアップロードして差し替えます。
(512Mbyte に変更する場合の設定例です)

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

 

.htaccess ファイルで設定変更

.htaccess は Web サイトの動作環境を設定するためのファイルです。
このファイルは、「エックスサーバー」など管理メニューから編集できるレンタルサーバーもあります。

▼ エックスサーバーでの手順 ▼
1. サーバーパネルへログインし、「.htaccess編集」メニューをクリック。
2. 「.htaccess編集」タブを選択する。
3. 追記したい内容(設定例は後述)を入力して、「確認画面へ進む」をクリック。
4. 設定内容を確認し、間違いがなければ「実行する」をクリック。

 

管理メニューから編集できないレンタルサーバーの場合は、FTP 接続してから、ファイルの編集をします。
ただ、.htaccess は隠しファイルとなっているため、FTP 接続をする場合は、FTP ソフトで隠しファイルを表示するように設定してください。

FTP でサーバーに接続して、WordPress インストールフォルダにある .htaccess をダウンロードします。
※ダウンロードしたファイルは念のためバックアップを取っておいてください。

以下を追記してファイルを保存し、元のディレクトリにアップロードして差し替えます。
(512Mbyte に変更する場合の設定例です)

php_value memory_limit 512M

 

対処方法2 の方法はすべてする必要はないので、いずれかを試してみて、エラーが解消されるかを確認してください。

それではまた、機会があれば。

Posted by リクラフ