急にサイトが表示されなくなった時に最初にチェックすべき事
昨日まで動いていて、急に Service Temporarily Unavailable という表示で動作しなくなった時に一番最初に疑うのはデータベースの調子が悪い事ではないかと思います。
phpMyAdmin にアクセスしてみよう
一般的なレンタルサーバであれば、MySQLの状態を見る事ができるようなWebのインターフェースとして phpMyAdmin というものが提供されている事が多いです。
acms_cache をチェックしてください。レコード数・種別・照合順序・サイズ・オーバーヘッドが表示されずに、使用中 になっています。思ってた通り、これが原因で動作しなくなっていました。
復旧方法
acms_cache の横のチェックボックスにチェックをつけ、表の下の方にあるプルダウンメニュー(チェックしたものを:)を テーブルを修復する を選択してみて下さい。
テーブルの修復が実行されます。 MySQL のコマンドとしては
REPAIR TABLE acms_cache;
で、これが実行されると無事ページが表示されるようになります。
エラーログファイルで確認する (2.1以降)
a-blog cms 2.0 がリリースされた時に紹介されないままになっていた機能で、エラーがあった時にログ出力する機能が用意されていました。次のバージョンリリース時には、新規インストール時から config.server.php に設定が空の状態で用意されるようにしたいと思います。(現状、アップデートされた時のみ設定があるようです)
config.server.php
define('ERROR_LOG_FILE', '/Applications/AMPPS/www/private/error.log');
サーバのフルパスで記述し、ファイル自体も空のファイルで書き込み権限がある状態にして置く必要があります。また、空の場合には、php.ini の error_log に設定されているところに書かれますが、この設定も空である場合には、どこにも書かれない事になります。
MySQLのサーバに繋がらない時には、以下のようなログが表示されるようになります。
[31-Jul-2014 09:57:04] ACMS Worning: Can't connect to MySQL server.
また、このエラーについては、DB・キャッシュ・ログイン時のエラーを出力しています。
オマケ(不正ログインもエラーログでチェックできます)
誰かがログインしようと試みている事をログとしてチェックできるようにする事ができますので、設定してみてください。
[31-Jul-2014 09:58:18] ACMS NOTICE: POST_MODULE=Login_Auth, VALID=false, USER_ID=aaa, REQUEST_URL=http://localhost/login/, REMOTE_ADDR=::1, REFERER=http://localhost/login/, STATUS=200 OK, SUID=0, EID=, CID=, BID=1
今後、エントリーを公開した時、削除した時、カテゴリーを作成した時のような、エラーではなく、運用のログについてもテキストファイルで出力できるような機能を用意してみてもいいのではないかという案も、提供のタイミングは分かりませんが出てきております。