PR

[WordPress] 「データベースに接続できません」のカスタマイズ

データベース関連のエラー表示例

※詳しく調べていないので間違いがあるかもしれません

エラー:データベースに接続できません

標準で出力される「エラー:データベースに接続できません」の表示。これは管理画面以外への通常アクセスで表示されるようだ。

スポンサードリンク

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

ユーザIDやパスワードなどが間違っているなどの理由で接続できない場合に表示される。おそらく管理画面へのアクセス。

データベースが選択できません

データベースへ設定されたユーザIDとパスワードで接続できたが、指定されたデータベースを選択できない場合に表示される。cPanel などはユーザ作成とデータベース作成が別であり、関連付けが正しく行われていない場合などに遭遇することが予想される。おそらく管理画面へのアクセス。

インストール済み

実はこれが最も問題。これは接続が確立したが、データを読み込む段階で高負荷により接続が断たれたり、データベースが壊れている場合に表示(/wp-admin/install.php へリダイレクト)される。おそらくこのエラーには対応できないと思われる。もし、この画面を表示させたくないなら .htaccess でエラーページに強制移動する方法が考えられるだろうか。

データベースが壊れている場合の対処はこちら

wp-content/db-error.php を作成


<?php
header( 'HTTP/1.1 503 Service Unavailable' );
header( 'Expires: Wed, 11 Jan 1984 05:00:00 GMT' );
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 &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;>
<html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; dir=&quot;ltr&quot; lang=&quot;ja&quot;>
<head>
<meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; />
<title>ERROR</title>
</head>
<body>
<div style=&quot;margin: 15px auto 0; padding: 5px 25px 10px; width: 600px; border: 1px black solid;&quot;>
<h1 style=&quot;border-bottom: 1px gray solid;&quot;>503 Service Unavailable - DB Error</h1>
<div style=&quot;text-align: center;&quot;>
<img checked=&quot;true&quot; style=&quot;width: 340px; height: 410px;&quot; alt=&quot;人大杉&quot; src=&quot;/errors/err503.jpg&quot;><br />
<p>
データベースに接続できないようです<br />
数分後にリロードしてみてください<br />
たぶん人大杉です<br />
</p>
</div>
</div>
</body>
</html>


ドロップインとして動作する

ドロップインは、WordPressが持つ標準機能を置き換える動作をする。WP-SuperCahe などがこれに該当し、今回作成するdb-error.php もこれに含まれる。インストールは、作成したphp ファイルをFTP などで転送するだけで良い。

動作確認

データベースに接続できない状態を作り出し、任意のカスタマイズしたエラー画面が表示されれば成功。

注意点

注意する所は WordPress ロード後、早い段階でDBエラーが発生したのを感知して表示するので WordPress のテンプレートタグはほとんど使えない点です。(「WordPress のデータベースエラーページをカスタマイズ : dogmap.jp」より引用)

前回の記事もぜひ参照してください

参考文献

コメント