データベース接続確立のエラー ページ の カスタマイズ
この記事は 2015年 3月 14日 に書かれた記事です。
この記事は WordPress Version 4.1.1 の時の記事です。
僕のサイトのような へっぽこサイトじゃ 問題ありませんが
例えば ツイッターとかで 拡散されて 急激なアクセスによって DBが止まったりしたら
データベース接続確立のエラー が 表示されます
このページ データベース接続確立のエラー としか 表示されないので
少しカスタマイズをしてみようかと思います!!
I referred to memobits.
http://m.designbits.jp/12090710/
メンテナンス ページ の カスタマイズ
https://tekuaru.jack-russell.jp/2015/03/14/32/
また エラーページが表示されたら 自分宛てに
メールを送るようになっていますので
書き換えて 使ってみてください
メールを送る設定 の 準備として
ドキュメントルートから /resources/logs/db-error.txt という
ディレクトリと ファイルを 作っておいてください
ドキュメントルートから /resources/logs/db-error.txt という
ディレクトリと ファイルを 作っておいてください
ファイルの中身は 0 と 記述しておいてください
書き換える内容は
$diff_fime
アラートメールが アクセスのたびに送られないように
前回の時間から 60(秒) × 5(分) 過ぎていれば メールを 送る 設定値です
アラートメールが アクセスのたびに送られないように
前回の時間から 60(秒) × 5(分) 過ぎていれば メールを 送る 設定値です
$set_mail = array(
‘to’ => ‘[email protected]’,
‘header’ => ‘From: ‘ . ‘WordPress <wordpress@’ . $_SERVER[‘SERVER_NAME’] . ‘>’ . PHP_EOL .
‘BCC: ‘ . ‘[email protected]’,
‘subject’ => ‘WP DB ERROR : ‘ . $_SERVER[‘SERVER_NAME’],
‘body’ => ‘データベース接続確立エラーページが表示されました。’ . PHP_EOL . PHP_EOL .
‘データベースサーバーが動作中か確認してください。’ . PHP_EOL . PHP_EOL .
‘アクセス元URL : ‘ . ( empty( $_SERVER[‘HTTPS’] ) ? ‘http://’ : ‘https://’ ) . $_SERVER[‘HTTP_HOST’] . $_SERVER[‘REQUEST_URI’],
);
‘to’ は 送り先
‘header’ は 送り元 や CC BCC 等
‘subject’ は 件名
‘body’ は 本文
と なっています
‘to’ => ‘[email protected]’,
‘header’ => ‘From: ‘ . ‘WordPress <wordpress@’ . $_SERVER[‘SERVER_NAME’] . ‘>’ . PHP_EOL .
‘BCC: ‘ . ‘[email protected]’,
‘subject’ => ‘WP DB ERROR : ‘ . $_SERVER[‘SERVER_NAME’],
‘body’ => ‘データベース接続確立エラーページが表示されました。’ . PHP_EOL . PHP_EOL .
‘データベースサーバーが動作中か確認してください。’ . PHP_EOL . PHP_EOL .
‘アクセス元URL : ‘ . ( empty( $_SERVER[‘HTTPS’] ) ? ‘http://’ : ‘https://’ ) . $_SERVER[‘HTTP_HOST’] . $_SERVER[‘REQUEST_URI’],
);
‘to’ は 送り先
‘header’ は 送り元 や CC BCC 等
‘subject’ は 件名
‘body’ は 本文
と なっています
db-error.php という 名前で
wp-content の 中に ファイルを 入れると動くように なります
<?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>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="format-detection" content="telephone=no,address=no,email=no">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="//oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="//oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<title>503 Error : Service Unavailable</title>
<meta name='robots' content='noindex,follow' />
</head>
<?php
$diff_fime = 60 * 5;
$file_dir = $_SERVER['DOCUMENT_ROOT'].'/resources/logs/db-error.txt';
$last_time = file( $file_dir, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
if ( (int)array_pop( $last_time ) + $diff_fime < time() ) {
file_put_contents( $file_dir, PHP_EOL . time(), FILE_APPEND | LOCK_EX);
$set_mail = array(
'to' => '[email protected]',
'header' => 'From: ' . 'WordPress <wordpress@' . $_SERVER['SERVER_NAME'] . '>' . PHP_EOL .
'BCC: ' . '[email protected]',
'subject' => 'WP DB ERROR : ' . $_SERVER['SERVER_NAME'],
'body' => 'データベース接続確立エラーページが表示されました。' . PHP_EOL . PHP_EOL .
'データベースサーバーが動作中か確認してください。' . PHP_EOL . PHP_EOL .
'アクセス元URL : ' . ( empty( $_SERVER['HTTPS'] ) ? 'http://' : 'https://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'],
);
mb_language( 'ja' );
mb_internal_encoding( 'UTF-8' );
mb_send_mail( $set_mail['to'], $set_mail['subject'], $set_mail['body'], $set_mail['header'] );
}
?>
<body class="container">
<div class="jumbotron" style="margin-top: 30px;">
<h1>503 Error : Service Unavailable</h1>
<h2>ただいまサイトが大変混み合っております</h2>
<br><br>
<p class="lead">しばらく待ってから、再度お試しいただけますようお願い致します。</p>
</div><!-- /.jumbotron -->
<?php if ( isset ( $_GET['admin'] ) || isset ( $_GET['err'] ) ) { ?>
<div class="jumbotron">
<h1>データベース接続確立エラー</h1>
<p class="lead">これは wp-config.php ファイルのユーザー名とパスワード情報が間違っているか localhost_ のデータベースサーバーに接続できないかのどちらかを意味します。</p>
<p class="lead">ホストのデータベースサーバーがダウンしているかもしれません。</p>
</div><!-- /.jumbotron -->
<div class="well">
<ul>
<li>ユーザー名とパスワードか正しいか確認してください。</li>
<li>正しいホスト名を入力しているか確認してください。</li>
<li>データベースサーバーが動作中か確認してください。</li>
</ul>
</div><!-- /.jumbotron -->
<?php } ?>
</body>
<style>
/* ここに スタイルを 書きます */
</style>
<script>
/* ここに JSを 書きます */
</script>
</html>