> 記事 > WordPress ウェブ制作 プログラミング > WordPressで、DBエラーが出た場合に独自のエラーページを出す方法

WordPressで、DBエラーが出た場合に独自のエラーページを出す方法

2016.01.22.(Fri)Masahiro Natori By.Masahiro Natori

こんにちは、masaです。

去年、個人的に借りているサーバー会社がトラブルを起こし、ウェブサイトが表示されない、という不具合がありました。サイトはWordPressで構築していたのですが、Webサイトを開こうとすると“データベース接続エラー”と表示され、まったく内容が表示されないような状況でした。実際には、ウェブサイトにおいてあるphpファイルや画像ファイルには問題なかったのですが、WordPressで構築されたサイトに関しては、記事のデータなど重要な情報の多くは全てデータベースに保存されているので、データベースにアクセスできないとまったくお話にならない状況になってしまいます。

WordPressで構築されたサイトだけでなく、データベースを利用しているサイトではデータベースにトラブルがあった時には、“データベース接続エラー”が表示されてしまうわけなのですが、このようなことが短時間ならともかく数時間または丸一日のような長期間にわたるような場合には、訪れていただいた人にも迷惑が掛かってしまいます。このような場合に、デフォルトのエラーメッセージの代わりに、“現在データベースのトラブルがあり、復旧中です。しばらくおまちください” という旨のメッセージを表示できれば、訪れた方にとっても、サイトがクローズされたりしたわけでなく、一時的なトラブルなのだと理解していただけるので、多少は安心かと思います。

そこで、このようなデータベースエラーが起きている時に、独自のエラーページを表示する方法を紹介します。

Sponsored Link

データベースエラーページを表示する方法

WordPressの場合には、データベースエラーが起きたときにはまず、
/wp-content/db-error.php
というファイルを表示しようとします。
そして、そのファイルが存在しない場合には、
“データベース接続エラー”というエラーメッセージが表示されるようになっています。つまり、この /wp-content/db-error.php というファイルを置いておくと、DBエラーが起きたときには自動的にそのファイルが表示されるわけです。

わたしが設定した簡単な例を下に示します。

<?php
header( ‘HTTP/1.1 503 Service Unavailable’ );
header( ‘Last-Modified: ‘ . gmdate( ‘D, d M Y H:i:s’ ) . ‘ GMT’ );
header( ‘Cache-Control: no-cache, must-revalidate, max-age=0’ );
header( ‘Pragma: no-cache’ );
header( ‘Content-Type: text/html; charset=utf-8’ );
?><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml” dir=”ltr” lang=”ja”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>データベースエラー : ***********.com</title>
</head>
<body id=”error-page”>
<h3>503 Service Unavailable – DB Error</h3>

<p>ただいまサーバーに問題発生中のため、ブログ「**********」を
表示できません。<br/>
<br/>
誠に申し訳ありません。<br/>
<br/>
後ほど再度アクセスしてみてください。どうぞよろしくお願いします。</p>

<br/>
<p style=”text-align: left;”><a href=”http://***********.com”>http://***********.com</a></p>
</body>
</html>

 

 


もちろん、*******部分は、ご自分のブログや、ウェブサイトの情報に書き換えてください。そしてファイルをdb-error.phpというファイル名で UTF-8形式で保存したら、WordPressがインストールされているサーバーの wp-content 直下にこのファイルを置きます。

ファイルの置き方については、大きく2つのやり方があります。
(1)FileZillaなどのFTPソフトを使用する方法
(2)レンタルサーバー会社から提供されているファイルマネージャなどを利用する方法

(1)FileZilla を使用した例はこのような感じです。サーバーに接続するためのFTP情報(サーバー名、ユーザー、パスワード)を元にFileZillaのセットアップを行い、ファイルを転送します。
db-error.phpファイルの置き場所
(2)FileManagerを利用した例はこのような感じです。ファイルマネージャーはサーバー会社によって大きく異なります。

GITS Hostingの例
ファイルマネージャから見た例。サーバー会社によって異なります。
Lolipopの例
Lolipopのファイルマネージャー
XSERVERの例
XSERVERのファイルマネージャー
さくらサーバーの例
さくらサーバーのファイルマネージャー
サーバー会社によりかなり見た目の雰囲気は違いますが、できることはほとんど同じというのが実際のところです。

このようにdb-error.php を置いておくと、万が一本当にデータベースエラーが起きた時には自動的にこのページが表示されるようになります。

まとめ


レンタルサーバー会社の信頼性は昔に比べると。たいへん高くなっていて、昔ほどファイル消失のリスクや、データーベースエラーの心配をしなくてもよくなってきているとは思います。それでも定期的なメンテナンスもありますし、やはりまれにトラブルが起きることもあります。データベースがトラブルにったような場合には、このような対処法もありますので、試してみてください。

Masahiro Natori

Masahiro Natori
こんにちはMasaです。39歳の時に16年勤めた会社を辞め、2013年4月に家族で日本からパースに引っ越してきました。2013年6月よりGITSに勤務。2014年1月にGITSのサポートでProgrammerとして457ビザを取得。 趣味は音楽を聴くことと、部屋のレイアウトを変えること、ドライブすること。
    関連する記事は見当たりません。
  • facebook
  • twitter