セキュリティ 2023.07.26

WordPressでエラーコードを表示させてエラー原因を特定する方法

この記事を書いた人

土井 純也

WordPressスペシャリスト・エンジニア/株式会社e2e 取締役 / CTO

1985年北海道生まれ。
200社以上の大手上場企業のWordPressサイトの制作、保守・セキュリティをサポートしている。

【 展開しているサービス一覧 】
■WordPress開発サービス「wp.make
■WordPress保守/運用サービス「wp.support
■WordPressハッキング/緊急復旧対応サービス「wp.rescue
■WordPressバージョンアップ代行サービス「wp.versionup

WordPressでサイト運営をしていると、何らかのトラブルが発生することは珍しくありません。
画面が真っ白になってしまい、管理画面にも入れなくなってしまうと、途方にくれるしかないということもあり得ます。
そんな時に頼りになるのが、「エラーメッセージ」です。

エラーコードは、どのファイルのどの箇所でどんなエラーが起きているのかを把握するのに重要な役割を果たします。
今回はデフォルトでは非表示となっているエラーコードを表示させる方法から、エラーコードの構成の解説、代表的なエラーコードの原因と対処方法について、初心者でもわかりやすいように解説します!

また、「どうやってもエラー・不具合が解消できない場合」や「今すぐサイトを復旧したい」という場合は、プロにトラブル解消を依頼することもご検討ください。
WordPress復旧のプロへの【無料相談】はこちら

WordPressの一般的なエラー

ここでは WordPressで起きる一般的なエラーを紹介します。

真っ白な画面 /White Screen of Death(WSoD)

PHPエラーやデータベースエラーが発生すると、ただ真っ白な画面が表示される場合があります。画面上では何の文字情報も得られないエラーです。

サーバーの内部エラー(40x系のエラー)

サーバーの内部エラーにはいくつかの原因があり、それぞれを紹介します。

データベース接続確立エラー

画面に「データベース接続確立エラー」または「Error Establishing Database Connection」というエラーメッセージが表示がある場合、データベースとの接続に問題があります。

WordPressはデータベースと連携することで初めて動作します。データベースとは何か一言で言うと「管理画面から入力された記事やサイトの情報・設定などの、動的な情報を保存する箱のようなもの」です。保存された情報は「データベース」という箱に保存されます。

そのデータベースとうまく接続できずデータが取得できない、というエラーです。

こちらのエラーの詳細は、以下の記事でさらに詳しく取り上げていますので、原因がはっきりしている場合は参考にしてみてください

WordPressのデータベース接続確立エラーの原因とすぐできる解決法

接続タイムアウト

接続タイムアウトエラーは、Web サイトが想定を超えるメモリを使う動作を行った場合に発生します。この問題は特に共有サーバー使用時の、メモリーの上限が低い場合に発生します。

アップグレード後のメンテナンスモード

WordPress のバージョンを更新すると、自動的に「maintenance」ファイルがインストールされます。更新完了後、メッセージ「現在メンテナンス中のため、しばらくの間ご利用いただけません。」が表示される場合があります。

400番台のエラー

400〜499の番号がついたエラーは、HTTPクライアント側に原因のあるエラーです。

1. 400 Bad Request

400 Bad Requestレスポンスは、サーバー上でクライアントに関するエラーが起きた場合に表示されるものです。

例えば、URLのパス、クエリ文字列などに間違った書式や文字が含まれていたり、Webブラウザに保存されたCookieやキャッシュファイルが破損している場合にエラーが発生します。

2. 403 Forbidden

Webサイトの権限が適切に設定されていないとこの問題が発生してしまいます。

インターネット技術特別調査委員会(Internet Engineering Task Force 、省略IETF)による定義は次の通りです。

403(Forbidden)ステータスコードは、サーバーがリクエストを理解したものの、認証が拒否されたことを示します。リクエストが拒否された理由を公開したいサーバーは、レスポンスのペイロードにその理由を記述することができます。

3. 404 Not Found

存在しないウェブページにアクセスしようとすると、 404エラーが発生します。ページが削除されてしまったときにもこのエラーが発生します。

500番台のエラー

500〜599の番号のついたサイトエラーは「サーバーが何らかの理由で特定のリクエストを実行できない」ことを意味します。例をいくつかご紹介します。

1. 500 Internal Server Error

500 Internal Server Errorは、ユーザーがサイトを閲覧できないだけでなく、解決しないとSEOの評価に影響を及ぼしてしまう可能性も持っています。
CGIへのアクセスにおいて断続的に「500 Internal Server Error」エラーが発生し、CGIが実行できるときとできないときがある場合に該当する可能性があります。

プログラムへのアクセス集中などにより上記のエラーが発生しますが、すでに稼働中のプロセスが終了し、リソースに余裕が生じると自動的にエラーは解消されます。

2. 502 Bad Gateway

あるサーバーが別のサーバーのプロキシまたは「ゲートウェイ」として機能している場合、502 Bad Gatewayエラーに遭遇する可能性があります。これは、プロキシサーバーが無効な応答を受信したときに発生します。

プロキシサーバーとは、インターネットへのアクセスを代理で行うサーバーのことです。

3. 503 Service Unavailable

503 Service Unavailableエラーは、なんらかの理由でサーバーにアクセスできないことを意味します。ユーザーがアクセスできない状態です。

一般的な原因は、サーバーがメンテナンス中のために停止していることや、負荷が高すぎる状態になっていることです。

4. アップロード:ファイルをディスクに書き込めませんでした

このエラーは多くの場合、 ファイルの権限が正しくないことでファイルを編集できないことが原因です。この問題を解決するには、 ファイル転送プロトコル(FTP)を介してファイルの権限を変更します。

FTPを介して、ファイルを転送したりファイル権限を変更するソフト(FTPクライアンソフト)としては、ffftpが有名です。

5. 安全な接続を確立できませんでした

WordPressコアファイル更新の際には、サイトはWordPress.orgに接続する必要があります。しかし、サーバーの設定が原因で、これができない場合があります。その結果、WordPressダッシュボードに警告が表示されます。

これはサーバーに直接関連する問題であるため、ホストに連絡するのが得策です。サーバーがDDoS攻撃を受けている可能性があります。この場合、エラーはすぐに自然に解決するはずです。または、Secure Shell Protocol (SSH) を介してサーバーをWordPress.orgへと接続することで、自分で問題の解決を試みることもできます。

6. ディレクトリを作成できませんでした

WordPressサイトにプラグインまたはテーマをインストールすると、そのファイルがサーバーに追加されます。インストールまたはアップデート中に「ディレクトリを作成できませんでした」というメッセージが表示される場合は、何らかの理由で、WordPressが必要なファイルをサーバーに追加できなかったことを意味します。

7. ファイルの権限(パーミッション設定)が正しく設定されていない

ファイルの権限が正しく設定されていないと「このページにアクセスする権限がありません」というエラーのように、サイトの特定の領域へのアクセスが拒否されます。さらに以下のことができなくなります。

  • プラグインとテーマの更新やインストール
  • 投稿とページの公開や更新
  • 画像のアップロード

一方、ファイルの権限設定が甘いと、ウェブサイトが脆弱になり、ハッカーがファイルにアクセスするリスクが高まります。そして、コンテンツ削除、データ盗難、悪意のあるコードの追加へとつながります。

コンテンツが削除されてしまうと、大きな損害につながるため注意しましょう。

8. ERR_SSL_PROTOCOL_ERROR

Secure Sockets Layer(SSL)証明書は、データ暗号化に使用されるセキュリティ強化策です。これにより、サーバー間で転送されるクレジットカード情報などの機密データのハッカーによる盗難を防ぎます。

ホスティングプロバイダーを切り替えてすぐ、または、サイトに新しいSSL証明書をインストールした直後に、ブラウザにERR_SSL_PROTOCOL_ERRORが表示されることがあります。これは、何らかの理由で、サーバーが安全な接続を確立できなかったということです。

この問題を解決する方法としては、ブラウザとオペレーティングシステムの更新、SSL証明書の確認、ブラウザ拡張機能の無効化、ブラウザキャッシュ/クッキーのクリアなど、いくつかの可能性があります。

エラーコードを表示させる

エラーを特定する方法として、まずはエラーコードを表示させてみましょう。
エラーコードというのは、phpを実行する過程でエラーが発生した箇所と大まかな原因を教えてくれるものです。エラーコードを表示させることで、エラー原因を定めやすくなるというメリットがあります。デフォルトではセキュリティ的な問題もあって隠されています。

エラーコードを表示させるには、FTPソフトで「wp-config.php」というファイルを編集します。FTPソフトとして有名なのは「ffftp」です。「wp-config.php」はwp-contentフォルダと同じディレクトリにあります。

ファイルはそのまま編集してもいいですし、一度ダウンロードしてから編集してアップロードしても構いません。
ただし、編集前のファイルはコピーをとってバックアップとして保存しておきましょう。バックアップが重要なのは、何かしらの理由で編集前のファイルに戻す必要が出てくることがあるからです。例えば編集したことでエラーが発生するようになった場合、編集前の状態にすぐ戻せなくなってしまいます。

バックアップが取れたら、「wp-config.php」に次の記述を探します。

この「false」の値を「true」に変更してください。(ちなみにデフォルトが「false」になっているのは、セキュリティ的観点からです。問題が解決したら、「false」に戻しておくことをお勧めします。)
「define(‘WP_DEBUG’, false);」の記述がない場合は、下の方にある「require_once(ABSPATH . ‘wp-settings.php’);」よりも前に以下のコードをコピペして貼り付けてください。


この状態でもう一度サイトにアクセスすると、真っ白なだけだった画面に、エラーコードが表示されるようになります。

エラーコードの構成を知る

エラーコードが表示されても、英語の文章ばかりで何を言っているのか意味がわからないと思います。
ですが、大体、原因ごとに定型のフレーズがあるため、それを手がかりにエラーの原因を特定していきましょう。

エラーコードは次のように決まった形で出力されます。

「エラーのレベル:エラーの詳細 in (エラーが起こったファイル名)on line 〇〇(エラーが起こった行数)」

これさえ知っていれば、初心者でもエラーが起こったファイル名と場所が何となくわかるようになります。何となくの意味さえわかれば、それを足がかりにエラーの原因を見つけて解決策を得ることができるでしょう。

(ただし、実際にはエラーの原因が別ファイルや別の箇所の記述だったりすることがあるので、あくまでなんとなくです。)

エラーの原因別に対処する

エラーコードの構成がわかったところで、表示される定型文ごとの対処方法を見ていきましょう。

「Parse error: syntax error, unexpected…」

このエラーは「構文エラーが起こっているよ」ということを示しています。

プログラミング言語には定められた書き方のルールがあり、それに沿っていなければ構文エラーとなってしまいます。

余分なスペースや改行、括弧が全角になっていたり、閉じタグの数が合っていない、など、原因は様々です。

エラーファイルをチェックして、原因を探してみましょう。

「Fatal error: Call to undefined function…」

「定義されていない関数が呼び出されたよ」という意味のエラーです。

WordPressでは様々な関数を利用してWebサイトを表示していますが、コードが間違っていたり、関数が記載されているはずのファイルを上手く読み込めていない場合、このエラーが表示されます。

プラグインが原因であることが多いので、「プラグイン」が原因だった時の対処法を試してみると良いでしょう。

ただ、それでもダメだった時は、初心者が不用意に色々なファイルを触ると危険な場合があるので、専門家に相談した方が良いでしょう。

WordPress復旧のプロへの【無料相談】はこちら

「Fatal error: Cannot redeclare・・・」

「定義済みの関数をもう一度定義しようとしているよ」というエラーです。

関数の名前は開発者が自由につけられるわけですが、すでに使用されている名前を使うことは出来ません。
定義済みの関数が複数あると、呼び出すときにどちらの関数を呼べばよいのか、判断できなくなるためエラーとなります。

こちらも、プラグイン同士の競合が原因であることが多いため、WordPressの画面が真っ白になった時の対処法〜プラグイン編〜を参考に対処を試してみてください。

それでも上手くいかない場合は、WordPressのプロへの相談をご検討ください。

エラーコードを見ても原因がわからない場合は?

エラーコードは表示させることができたられたけれど、「結局、コードに何が書いてあるかわからない」「どこがエラーになっているのかわからない」といった方は、エラーが起こる直前の変更点を参照してみると良いかもしれません。

画面が真っ白になってしまっているという場合は、「WordPressの画面が真っ白!原因別の対処法まとめ【初心者向け】」こちらなどを参考に、心当たりを探ってみましょう。

もし、「よくわからないコードを見るのは嫌だ!」「もう完全にお手上げだ」「一刻も早くサイトを復旧したい」という場合には、エラーコードと睨めっこして長時間を無駄にするより、WordPressの専門家に相談することをお勧めします。自分が悩んでいることは他の誰かがすでに悩んでいて、解決策を持っていることがほとんどです。

WordPress復旧のプロへの【無料相談】はこちら

WordPressサイトのトラブル復旧なら「wp.rescue」にお任せ!

WordPressサイトで急なトラブルにあったら、「wp.rescue」にご相談ください!

  • 急にサイトに何も表示されなくなった…
  • ログインできなくなった…
  • 覚えのない不審なページがインデックスされている…
  • 不審なユーザーが追加されている…
  • リンクが不審なサイトに飛ぶように書き換えられている…
  • バージョンアップしたらサイトが崩れてしまった…

「wp.rescue」は、WordPressのプロフェッショナル集団によるWordPressトラブル・ハッキング復旧サービスです。
WordPressサイト運営していて、急なトラブルに遭うことは珍しくありません。

原因や解決法方がわかる場合は問題ありませんが、原因がわからなかったり、ハッキングの可能性がある場合はプロに相談するのが一番です。
wp.rescueでは、様々なサイトのトラブルやハッキング被害を解決してきた経験・ノウハウがあるため、速やかなサイトの復旧が可能です。

トラブル復旧はスピードも重要。wp.rescueなら最短即日での復旧も可能ですので、お困りの場合はまずはお問い合わせフォームから無料相談をしてください。

>> wp.rescueに無料相談する

「あれ? 何かおかしい…」と思ったら、WordPressハッキング・緊急対応サービス『wp.rescue』

wp.rescue

特に心当たりもないのに、
・WordPressにログインできない…
・検索結果の表示がおかしい…
・勝手にリダイレクトされてしまう…


など、「何か変だ」と感じたら、
実はWordPressがハッキングされている可能性もあります。

被害が拡大・深刻化する前に、『wp.rescue』にご相談ください!

WordPressのプロフェッショナルがあなたのサイトの問題を迅速解決!