WordPressを運営していく上で怖いことの一つは、突然のエラーや真っ白な画面。できれば発生してほしくないことの一つですね。
エラーが頻繁に発生していると、サイト閲覧者からすると不安ですし、継続的なエラー画面が続いていると、「このサイトは正しく運営されていない・管理されていない」と見なされ、信頼を失うことに繋がってしまう懸念があります。
できれば避けたい問題ですが、起こってしまった場合は正しく向き合って原因を探ることで、同じ問題が起こらないように対策をすることができます。
今回はWordPressで発生しがちなエラーと、その発生の原因、さらにエラーへの対策について解説します。
なぜWordPressはエラーを起こしたり画面が真っ白になるのか
まずは、WordPressがエラーを起こしたり、画面が真っ白になる(通称「White Screen of Death(死の白い画面」と呼ばれます。怖い言い方ですね……)理由からご説明します。
これにはさまざまな要因があるため一概には言えませんが、サーバーの問題・プラグインやテーマの競合・PHP言語による問題・メモリ不足・データベースのエラーなど、様々な原因が考えられます。
プラグインやテーマの問題
WordPressのプラグインやテーマは様々な機能を提供しますが、同時に問題の原因にもなりえます。
プラグインやテーマが互いに競合してしまったり、新しいWordPressのバージョンと互換性がない場合、エラーを引き起こすことがあります。
PHPのエラー
WordPressはPHP言語で書かれており、PHPコードが原因となるエラーが発生すると、エラーを表示したり、画面が真っ白になることがあります。
特に、オリジナルテーマで構築したり、独自プラグインを作成すると起こりやすくなります。
メモリの不足
WordPressが動作するためには一定量のメモリが必要です。
サーバー上の利用可能なメモリが不足すると、エラーが発生したり、画面が真っ白になったりします。
データベースのエラー
WordPressは情報を保存するためにデータベースを利用します。データベースへの接続情報が間違っていたり、データベース自体に問題がある場合、エラーが生じます。
.htaccessファイルの問題
.htaccessは Appacheを採用しているウェブサーバーにおいて、設定を制御する重要なファイルです。
このファイルが破損していると、エラーが生じることがあります。
ちなみに、ウェブサーバーにnginxを利用している場合は.htaccessファイルは基本的にありませんが、中にはエックスサーバーのようにサーバーはnginxでありながら、.htaccessが利用できるというように、appcheも共存している場合もあります。
WordPressで発生しやすいエラーと原因
以下はWordPressを運用していると発生することのあるエラーの一覧です。
死の白い画面
ユーザーがサイトを開こうとした際に、画面が白くなるエラー。これは主にプラグインやテーマの問題、あるいはPHPメモリの不足が原因となる。
500 内部サーバーエラー
サーバー側の問題を示すエラー。しかし、具体的な原因の特定は難しく、.htaccessの問題、PHPメモリの不足、不適切なプラグインやテーマが原因となることが多い。
データベース接続エラー
WordPressがデータベースに接続できない場合に発生するエラー。主な原因は設定の不具合やサーバーの問題。
404エラー
特定のページが見つからない場合に表示されるエラー。パーマリンク設定の問題や、移動または削除されたページへの古いリンクが原因となることが多い。
メモリエクステンションエラー
WordPressのPHPメモリ制限を超えた場合に発生するエラー。通常、新しいプラグインのインストールやテーマの変更によって発生する。
502 バッドゲートウェイ
サーバーから不適切なレスポンスが得られた場合に表示されるエラー。これは主に、サーバーの過負荷やネットワークの問題が原因。
503 サービス利用不可
サーバーがリクエストを処理できない場合に発生するエラー。主に、サーバーの過負荷やメンテナンス中に表示される。
接続タイムアウトエラー
サーバーが反応しない場合に表示されるエラー。主にサイトが重すぎてサーバーが処理できない場合に発生する。
403 禁止エラー
ユーザーがサイトまたはページにアクセスする権限がない場合に発生するエラー。主にファイルパーミッションの問題やサーバー設定の問題が原因。
最大実行時間超過エラー
PHPスクリプトが許容されている最大実行時間を超えた場合に発生するエラー。主にプラグインやテーマの更新中に表示される。
デバッグやエラーログで原因を確認する
では、エラーが起きてしまった時にどうやって解消するかですが、まず考えられる方法は2つあります。
- WordPressのデバッグ機能を活用する
- エラーログからエラーメッセージを確認する
これらの対応策を行うことで、問題の原因を特定し、解消に繋がります。
デバッグ機能については以下を参考にしてください。
テスト環境や開発環境を用意したら有効化しておきたいデバッグモード
エラーログはどこにあるのか
基本的なサーバーでは、エラーログを生成する機能を備えています。これにより、何が問題を引き起こしているのか特定できるようになります。
エラーログは見慣れないと少し難しいかもしれません。英語による文字しか書かれていないファイルなため、人によっては開いただけで閉じたくなると思う人も……。
まず、エラーログがどこに保存されているかを確認しましょう。
多くのレンタルサーバーでは、エラーログはサーバーコントロールパネルの「エラーログ」画面から確認・ダウンロードできたり、FTPやSSH等でサーバーにアクセスし、「public_html」等のウェブサイトのルートディレクトリやその直前のディレクトリ、または指定されたディレクトリに保存されていることが多いです。
主要なレンタルサーバーでの例
- さくらのレンタルサーバー: 『 エラーログ 』にある『 本日のエラーログ 』をクリックすることで内容を確認できます。(参照元: 公式ドキュメント)
- エックスサーバー: サーバーパネルの「エラーログ」より、エラーログの取得が可能です。(参照元: 公式ドキュメント)
- ロリポップ: アプリケーションのログや、アクセスログを確認するにはSSHを使用する必要があります。(参照元: 公式ドキュメント)
エラーログは何を示しているのか
エラーログはテキストファイル形式で、エラーが発生した日時、エラーメッセージが記録されています。エラーメッセージは一般的に以下の情報を含んでいます。
- エラーの種類
- エラーが発生したファイルとその行数
- その他エラーに関する情報
例えば、「Fatal error: Allowed memory size of xxx bytes exhausted (tried to allocate xxx bytes) in /path/to/wordpress/file.php on line 2」は、指定したファイルの2行目でPHPのメモリ制限を超えてしまった致命的なエラーということを示しています。
エラーをわざと出力させてみる例
試しに、あえてエラーを発生させてエラーログを確認してみます。
hallo_world();
function hello_world() {
echo 'hello!';
}
このように、間違った関数名を呼び出してみます。当然、関数名が間違っているためエラーとなります。
エラーログには以下のように記述されていました。
[18-Jul-2023 06:27:32 UTC] PHP Fatal error: Uncaught Error: Call to undefined function hallo_world() in /path/to/wordpress/file.php:82
「Call to undefined function」ということは、「定義されていない関数を呼び出してますよ」ということなので、関数を確認してみると、呼び出している関数と作成済み関数の名称が異なっていることが原因というのがわかります。そして「Fatal error」。つまり、致命的なエラーというのがわかります。
このように、エラーログを見て何が問題か特定できたら、その問題を修正する、というのが具体的なエラー対策方法です。
プラグインやオリジナルテーマではないテーマに起因するエラーの場合、自分で該当箇所を修復するのは難しい場合が多いため、問題のプラグインを更新または無効化したり、テーマ開発者の公式発表で対応方法が公開されていないか確認しましょう。
エラーはログを見て正しく恐れる
WordPressが突然ダウンしてしまったり、エラーが発生して不具合が発生するという問題は、WordPressを運用する以上、起こり得る問題です。
エラーがもし発生した場合でも、適切な対策取ることで解決できます。解決の鍵となるのがエラーログです。
エラーが発生した場合はデバッグ機能を使ったり、エラーログを確認したりして、問題の原因を探って解決できるようになれば、エラーはそこまで怖くはありません。
「WordPressをアップデートした後にエラーが出てしまった」という場合の対処方法は以下をご参考ください。
WordPressのアップデートでエラーが出たときの対処法
エラーの対処は本番環境上で行うとさらなるエラーを引き起こしたり、「急がないと」という焦りからさらなるエラーを引き起こすことにもつながるため、テスト環境上で確認・検証することをおすすめします。テスト環境の作り方はこちら。
WordPressのテストサイト・検証用環境の作り方
正しくメンテナンスできていないWordPressの場合、エラーが発生しやすい状態にある可能性があります。自社で対応できない、外部制作会社に依頼が難しい、という場合などはWordPress保守管理サポートを導入することで、安心した運用へと繋がります。お気軽にご相談ください。
コメントを残す