データベース接続確立のエラー ページ の カスタマイズ
この記事は 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>