WordPress を使用していてエラーメッセージや真っ白な画面が表示されても慌てないでください。誰かが同じ現象にぶつかっていれば簡単に解決できるはずです。
この記事では WordPress ユーザーが経験する一般的なエラーと、その解決策への糸口を紹介します。より詳細な情報については
WordPress Codex のページにリンクします。ここで解決策が見つからない場合はボランティアベースでの質疑応答が行われている「WordPress フォーラム」にあたってみてください。
死の真っ白画面
PHPエラーやデータベースエラーが発生すると、画面に何のメッセージも表示されず、ただ真っ白な画面が表示される場合があります。WordPress コミュニティではこれを一般に「WordPress 死の真っ白画面」(WSOD, White Screen of Death) と呼んでます。
闇雲に解決策をトライする前に、真っ白な画面にはいくつもの原因があることを知っておいてください。
- プラグインが互換性問題を起こしている – 管理画面 にアクセスできるようであれば、すべてのプラグインを無効化し、一つずつ有効化してください。管理画面 にアクセスできなければ FTP で Web サイトにログインしてください。次に「wp-content/plugins」フォルダーを探し「plugins_old」に名前を変えます。これですべてのプラグインは無効化されます。手動でプラグインを無効化する方法の詳細については「FAQ/トラブルシューティング」を参照してください。
- テーマが問題を起こしている – 新しいテーマを有効化しただけ、あるいは WordPress マルチサイトで新しいサイトを作成しただけで真っ白な画面が表示される場合には、この可能性があります。管理画面にログインし、デフォルトの「WordPress Twenty Sixteen テーマ」を有効化してください。管理画面 にアクセスできなければ FTP で Web サイトにログインし、「wp-content/themes/」フォルダーに移動し、有効なテーマのフォルダーの名前を変更してください。
WP_DEBUG 機能を使用すると追加情報が表示される場合があります。障害が続き、エラーログが出力される場合はこの記事の後半の「PHP Error」を参照してください。
サーバーの内部エラー
サーバーの内部エラーにも多数の原因があります。解決方法をいくつか挙げます。
- 多くの場合、原因は壊れた「.htaccess」ファイルにあります。FTP を使用してサイトにログインし、「.htaccess」ファイルを「.htaccess_old」に名前を変更してしてください。次にサイトにアクセスして問題が解決したかどうかを確認してください。動作していれば「設定」 > 「パーマリンク設定」にアクセスし、パーマリンクをリセットしてください。この操作により新しい「.htaccess」ファイルが作成されます。
- プラグインの問題かどうかを切り分けるために、すべてのプラグインを無効化してください。WordPress 管理画面にアクセスできない場合は、FTP 経由で無効化してください。こちらの手順を参照してください。
- テーマを WordPress Twenty Sixteen テーマに変更し、テーマ関連の問題を切り分けてください。
- PHP へのメモリー割り当てを増やしてください。
- WordPress の新規インストールイメージから、「wp-admin」と「wp-includes」フォルダーを再アップロードしてみてください。
データベース接続確立エラー
ページにエラーメッセージ「データベース接続確立エラー」または「Error Establishing Database Connection,」が表示される場合、データベースとの接続に問題があります。多数の原因が考えられますが、主な原因と解決策を挙げます。
wp-config.php 内の不正な情報
「データベース接続確立エラー」の原因は通常、wp-config.php にあります。FTP クライアントでサイトにアクセスしてください。wp-config.php を開き、次の情報が正しいことを確認してください。
- データベース名
- データベースのユーザー名
- データベースのパスワード
- データベースのホスト名
詳細については「wp-config.php の編集」を参照してください。
構成情報が正しいと思う場合は、手動でMySQL パスワードをリセットしてみてください。
Web ホストの問題
次のステップはサーバーホスティング会社への連絡です。サーバー側で次のような問題が発生しているかもしれません。
- データベースサイズが上限に達し、シャットダウンした。
- サーバーがダウンしている。
ホスティング会社に連絡し、上のような問題が起きていないかを確認してください。
Webサイトのハック
wp-config.php にエラーがなく、またホスティング会社側にも問題がないのであれば、サイトがハックされている可能性があります。
サイトを「Sucuri SiteCheck」でスキャンし、ウイルス等に感染していないことを確認してください。もし問題があれば「FAQ/ハッキング・クラッキング被害」を参照してください。
自動アップデートの失敗
WordPress の自動アップデートが失敗すると、次のような画面やエラーが表示されます。
- 何のメッセージもない真っ白な画面
- アップデートに失敗したという警告
- PHP のエラーメッセージ
WordPress の自動アップデートの失敗の主な原因は、メインの WordPress ファイルの接続の問題、アップデート中のネット接続の問題、不正なファイルのアクセス権です。
手動で WordPress サイトをアップデートするには「手動アップデートに関する記事」を参照してください。
接続タイムアウト
接続タイムアウトエラーは、Web サイトがキャパシティを超える動作を行った場合に発生します。この問題は特に共有サーバー使用時の、メモリーの上限が厳しい場合に多く発生します。以下を試してみてください。
- すべてのプラグインを無効化する。 – サイトのすべての WordPress プラグインを無効化することで問題が解決する場合、1つずつ有効化して、どのプラグインで問題が発生するかを確認してください。管理画面にアクセスできない場合は、こちらの手順を参照して手動でプラグインを無効化してください。
- デフォルトの WordPress Twenty Sixteen テーマに変更する。 – テーマ関連の問題を切り分けてください。
- PHP へのメモリー割り当てを増やす。 – 共有サーバーを使用している場合は、ホスティング会社に連絡して、メモリー増加を依頼する必要があるかもしれません。
- 「php.ini」ファイルで最大実行時間を増やす。 – このファイルは WordPress コアファイルではありません。編集方法が分からなければホスティング会社に連絡し、最大実行時間を増やしてください。手順については「 最大実行時間の増加」を参照してください。
アップグレード後のメンテナンスモード
WordPress をアップグレードすると、自動的に「.maintenance」ファイルがインストールされます。アップグレード後、メッセージ「現在メンテナンス中のため、しばらくの間ご利用いただけません。」が表示される場合があります。「.maintenance」ファイルが正しく削除されなかった可能性があります。
メッセージを削除するには、次の手順に従ってください。
- FTP プログラムを使用して Web サイトにログインする。
- サイトのルートにある「.maintenance」ファイルを削除する。
詳細については「メンテナンスモードの問題」を参照してください。
変更したのに何も変わらない
Web サイトに変更を加えたにも関わらず、ブラウザで変更を確認できない場合、ブラウザキャッシュをクリアする必要があります。ブラウザはアクセスしたサイトの情報を保存しています。これは再度同じサイトにアクセスした際、新規にダウンロードするのではなく、コンピュータ内にすでに保存されている情報をリロードすることで高速にロードするためです。
Web サイトに変更を加えても、大きな変更でないとブラウザが判断した場合、ブラウザはキャッシュから古いデータをロードするため変更が反映されません。この問題を解決するには、ブラウザのキャッシュをクリアするか、タブをクローズし、リンクを再度開く必要があります。
Pretty パーマリンクの 404 エラーと画像が動作しない
“Pretty” パーマリンクを使用していて 404 エラーが発生し、画像をアップロードすると真っ白な画面が表示される場合、デフォルトで Apache 内の mod_rewrite が有効化されていない場合があります。Mod_rewrite は Apache Web サーバーソフトウエアの拡張モジュールで、動的に URL を「リライト(書き換え)」します。”Pretty” パーマリンクの動作にはこの機能が必要です。
通常は WordPress マルチサイトネットワークで発生しますが、共有ホスティングプロバイダーや、サイトの移行後、サーバーの移動後にも発生します。
設定 > パーマリンク設定 を使用してパーマリンクをリセットしてください。動作しない場合は「.htaccess」ファイルを手動で編集する必要があります。
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
「.htaccess」ファイルの編集に慣れていない場合は、ホスティング会社に連絡し mod_rewrite ルールをオンにしてください。詳細については「 WordPress Codex 内のパーマリンク」を参照してください。
カスタム投稿タイプの 404 エラー
カスタム投稿タイプを使用していて 404 エラーが表示される場合には、次の手順を試してください。
- どのカスタム投稿タイプも、単一ページと同じ名前でないことを確認してください。同じものがあれば、単一ページの名前をスラッグも含めて変更してください。
- WordPress 管理画面にログインし、「設定」>「パーマリンク設定」にアクセスしてください。デフォルトのパーマリンクを選択し、保存します。次に希望のパーマリンクを選択します。リライトルールがクリアされ、問題が解決される場合があります。
固有のエラーメッセージ
エラーログには様々なエラーが表示されます。エラーログにアクセスするには、デバッグをオンにし、FTP でエラーログの場所に移動する必要があります。一般的なエラーメッセージを読み解くには以下の情報を参照してください。
PHP エラー
一般的な PHP エラーメッセージを挙げます。
Fatal Error と Warning
Cannot modify header information – headers already sent
警告「WordPress cannot modify header information and headers are already sent (WordPress がヘッダー情報を更新できず、すでにヘッダーは送信された)」が表示される場合、通常は開始タグの前、または終了タグの後に、スペース、または文字が含まれます。修正するには「Headers already sent エラーを解決するには ?」を参照してください。
この現象が WordPress のインストール直後に発生する場合、wp-config.php の編集で構文エラーが発生している場合があります。エラーを修正するにはこちらの手順を参照してください。
Call to undefined function
エラー「call to undefined function (未定義関数の呼び出し)」は WordPress プラグインがコード内に存在しないかアクセスできないファイルやデータを探している場合に発生します。 原因としては
- プラグインの自動インストール中、または自動アップグレード中のエラー。解決には手動でプラグインをインストールするか、アップグレードしてください。
- テーマの自動インストール中、または自動アップグレード中のエラー。手動でテーマをインストールするか、アップグレードしてください。
- 非互換の WordPress プラグイン、または非互換のテーマを使用している可能性があります。これは古いバージョンの WordPress と 新しい WordPress プラグインの組み合わせ、またはシングルサイトインストールの上で WordPress マルチサイト用プラグインを使用すると発生します。この問題を解決するには WordPress をアップグレードしてください。
- 存在しない関数を呼び出している可能性があります。「functions.php」内にスペルミスがないかを確認してください。
WordPress プラグインを無効化するか、WordPress テーマを変更して、問題が解消するかどうかを確認してください。管理画面から操作できない場合は、FTPを使用して手動で実行してください。
Allowed memory size exhausted
エラー「Allowed Memory Size Exhausted (利用可能なメモリーサイズを越えた)」は、WordPress に十分な実行可能メモリーがないことを意味します。以下の手順を試してください。
- wp-config.php 内のメモリーの上限を増やしてください。
- php.ini を編集してメモリーの上限を増やしてください。このファイルは WordPress のファイルではないため、もし編集の方法が分からなければ、ホスティング会社に連絡し、メモリーの上限を増やしてください。
Maximum execution time exceeded
メッセージ「Maximum execution time of 30 seconds exceeded (最大実行時間 30秒 を経過した)」または「Maximum execution time of 60 seconds exceeded (最大実行時間 60秒 を経過した)」が表示される場合があります。処理の完了に時間がかかり、タイムアウトが発生しています。このエラーを修正するには多くの方法があります。
.htaccess の編集
.htaccess の編集前には必ずバックアップしてください。
.htaccess に次の行を追加してください。
php_value max_execution_time 60
php.ini の編集
php.ini に次の行を追加してください。
max_execution_time = 60
編集の方法が分からない、あるいは共有サーバーのため編集できない場合は、ホスティング会社に連絡し、最大実行時間の変更を依頼してください。
Parse Error
Syntax Error
「Syntax Error (構文エラー)」は PHP コードの編集でミスがあったことを意味します。例えば
- 行の最後の「;」を忘れた。
- ストレート引用符「””」でなく、カーリー引用符「”“」を使用した。
- ブレース「{}」を忘れた。
このエラーでは、どのファイル、例えば functions.phpの、何行目付近でエラーが起きたのかが表示されます。行番号は正確でない場合もあるため、前後の数行分も確認してください。
Unexpected
「parse error: unexpected (パースエラー: 予期しないエラー)」は一般に文字の入力を間違えた場合に発生します。よくある例としては
- Unexpected ‘=’ : 変数を参照する際に「$」を忘れた。
- Unexpected ‘)’ : 始まりの括弧「(」を忘れた。
- Unexpected ‘(‘ : 終わりの括弧「)」を忘れた。
- Unepxpected T_STRING: クオーテーションを忘れた、または前の行の最後のセミコロン「;」を忘れた。
- Unexpected T_ELSE:「if」を書かずに「else」を書いた。
Use of an undefined constant
パースエラーでの「use of an undefined constant (未定義定数の使用)」は文字の入力を忘れた場合に発生します。次のどちらかです。
- 変数の参照で「$」を忘れた。
- 配列のキーの前後にクオーテーションを忘れた。
Database Error
次のエラーは WordPress データベースに関連して発生します。
Cannot Create/Write to File
エラー「Cannot Create/Write to File (ファイルを作成できない、またはファイルに書き出せない)」には多くの原因が考えられます。
- MySQL が一時ファイルを作成できない
- ファイルパーミッションが正しくない
この問題を修正するには次のどちらかを実行してください。
CREATE Command Denied to User
エラー「CREATE Command Denied to User (ユーザーはCREATEコマンドを許可されなかった)」は、データベースに割り当てられたユーザーが十分な権限を持たず、データベース内の列やテーブルの作成操作を実行できなかった場合に発生します。CPanel または Plesk にログインしてデータベースユーザーに十分な権限を設定してください。
あるいは、代わりにデータベースに割り当てる新しいユーザーを作成してください。この場合、作成したユーザーで wp-config.php を更新する必要があります。
Error 28
エラー「Error 28」は MySQL のエラーで WordPress とは直接、関係ありません。ホスティング会社に連絡してください。多くの理由が考えられます。
- サーバー上のキャッシュが一杯のため。解決するにはホスティング会社に連絡してください。
- /tmp の下のファイルが多すぎるため。これもホスティング会社に連絡してください。
エラー「Error 28」の詳細についてはこちらの記事も参照してください。
Error 145
エラー「Error 145」はデータベース内のテーブルが壊れたことを意味します。phpMyAdmin を使えるなら、こちらの手順 で MySQL データベーステーブルを修復してください。
実行する前には必ずデータベースをバックアップしてください。
過去に phpMyAdmin を使ったことがないか、実行がためらわれる場合には、ホスティング会社に連絡してデータベースの「CHECK」や「REPAIR」の実行を依頼してください。
Unknown Column
エラー「Unknown Column (不明な列)」はデータベースに列が存在しない場合に発生します。WordPress をアップグレードした直後であれば、再度手動でアップグレードしてみてください。WordPress サイトを手動でアップグレードするには、こちらの記事を参照してください。
データベースを照会していてエラーが発生した場合は、誤ってクオーテーションマークを使用しているのかもしれません。詳細については Stack Overflow 上での質疑応答を参照してください。また MySQL のマニュアルも参照してください。
この記事は役に立ちましたか ? どうすればさらに改善できますか ?
フィードバックを送信するにはログインする必要があります。