TRASH-NEWS 2008年05月10日の記事一覧

順路
  1. ホーム
  2. 2008年
  3. 05月
  4. 10日 [現在地]
Search?
お知らせ
社会人近況 (2008/09/07 0:00)
配属されてからこの方、ほぼ毎日終電での帰宅が続いているうえに毎週泊まりがけの出張が入っているため、1週間に1回か2回更新できればマシといった状況です。実はまだTRASH-NEWSは概要ページもリンクコーナーもろくに作っていないような有様なんですけれども、気づけばそろそろ1周年+すでに50万ヒット。……なんだこのえもいわれぬグダグダ感は……。とりあえずヴェスペリア堪能してから考えますね。
1 2 3

2008年05月10日

2008年05月10日のニュースとネタをお届けします

関連した日付へのリンク
  1. 2008年の記事一覧
  2. 2008年05月の記事一覧
TRASH-NEWSは
生きていくうえではあまり役立ちそうにないサイトです

2008年05月10日本日のニュースとネタ

このTRASH-NEWSはMovableTypeというブログ管理ツールを利用しているのですが、その管理ページにおいてときおり“ページを移動するたびにログインを求められる”という不具合に出会うことがあります。

通常、管理ページのインデックスにアクセスする際1回ログインしてしまえば、以降そのログイン情報が保持され一定期間ログイン用ページに飛ぶことなく管理ページを行き来できます。つまりログインは数ヶ月に1ぺんくらい求められるだけで、あとは直接管理ページの中にアクセスできる、というわけです。

しかしこれが僕の場合ダメで、何故か毎回毎回ログイン用ページに飛ばされます。はっきりいって、超面倒であり超不便。もう1ヶ月くらいこの状態が続いてるし……なんとかしないと!

MovableTypeにおけるログインの処理(適当解釈)

まずはログインという行為がプログラム的にどう処理されているかをご紹介します(MovableTypeのバージョンはMT4.1、データベースとしてMySQLを使用している場合を想定)。なお僕は具体的な仕様書などを読んだことはなく、“こういう風にできているんだろうな”という憶測の元書いていますので正確さは著しく欠きますが、処理の流れについてはこの記事においてはさして重要ではと考えているためご容赦ください(この記事は対処法をお知らせするために書いています)。ちなみにMovableTypeではログインのことを『サインイン』と呼んでいますので適宜読み替えてください。

ログイン用ページで入力・送信した管理者名とパスワードのデータは、オンラインにあるMovableType用データベース(内のテーブル)のひとつ『mt_author』の『author_password』というフィールドに記録されているデータと照合されます。ここで正しいと判定されれば(管理者名の'author_password'と一致すれば)『mt_session』というデータベースに正しくログインしたという証拠としてログイン情報(『session_name』:管理者名、ほか)が書き込まれます。ここでログインが成功した場合の処理は終了、管理ページへのアクセスが許可されます。以降管理ページの各ページを移動するたびに『mt_session』にログイン情報が書き込まれているかがチェックされ、書き込まれていれば(ログイン状態が保持されていれば)該当ページが読み込まれ、書き込まれていなければログイン用ページへと強制変遷されます。

MovableTypeのログインの有無の判定について(憶測)

ここでログイン用ページへと強制変遷されるのはおもに3パターンの状況においてありえます。1つはサインアウト(ログアウト)していた場合。2つめはブラウザがCookieを受け入れない設定になっている場合。そして3つめはデータベースへのアクセスができなかった場合

1つめについてはログアウトした時点で『mt_session』の該当部分が“ログアウトした”という風に書き換えられるため、ログイン状態とみなされないのは当然です。2つめについて、プログラム的にログイン状態を判定しているのはセッションという機能なのですが、これはCookieを利用しているためCookieを拒否しているブラウザではログインの有無が判定できません(参考記事)。よってムリ。そして3つめ。これがガンです。なぜならデータベースにアクセスできないというのはさまざまな要因が考えられるからです。データベースが過負荷で倒れた、データベースが壊れた、データベースへのアクセスが制限された、などなど……。ただでさえMovableTypeはデータベースを多用しているプログラムなので、データベースにまつわるバグや不具合は山のようにありますし、ありえます。

諸悪の根源はテーブルの破損だった(確信)

今回僕が1ヶ月近く“ページを移動するたびにログインを求められる”という不具合に見舞われていたのは、まさに3つめ、『データベースへのアクセスができなかった』ことが原因でした。

今日ふとこの原因に思い当たり、phpMyAdminというデータベース管理ソフトでMovableTypeの利用しているデータベース群にアクセスしてみたところ……『mt_session』テーブルが破損していることがわかりました

phpMyAdmin標準の機能『テーブルを分析する』の結果

実行した SQL: SHOW INDEX FROM `mt_session` ;

MySQLのメッセージ: #145 - Table './(DBの名前)/mt_session' is marked as crashed and should be repaired

これか……これがいけなかったのか……!! てっきりデータベースへのアクセス不良(遅延とか)が原因だと思っていたのですが、テーブルが壊れていたのが原因だったのか……!! そりゃ壊れてたらログイン状態が判定できるわけがありません。

原因が分かればあとは対処するだけ。phpMyAdmin標準の機能として『テーブルを修復する』というすんばらしくわかりやすいものがあるのでそれを利用します(もちろん修復用のSQLで打ち込んでもOK)。

phpMyAdmin標準の機能『テーブルを分析する』の結果

SQL の結果

ホスト: (ナイショ) データベース: (DBの名前) 生成時間: 2008 年 5 月 10 日 23:38 生成環境: phpMyAdmin 2.10.1 / MySQL 5.1.20-beta 実行した SQL: ANALYZE TABLE `mt_session`; 行: 3 Table Op Msg_type Msg_text (DBの名前).mt_session analyze Error Table './(DBの名前)/mt_session' is marked as crashed and should be repaired (DBの名前).mt_session analyze Error Table 'mt_session' is marked as crashed and should be repaired (DBの名前).mt_session analyze error Corrupt

実行した SQL: REPAIR TABLE `mt_session`; 行: 1 Table Op Msg_type Msg_text (DBの名前).mt_session repair status OK

status OK

心強い……心強くわかりやすいメッセージ!

確認してみると無事テーブルの内容を参照できました。これできっと大丈夫。MovableTypeの管理者用画面にアクセスし、ログイン。適当なページへアクセスします。これまではまたログイン用ページへ飛ばされていましたが……

アクセスできたァァ!

再ログインを求められることなく無事アクセスすることができました。地味な感動を覚えました。これで画像のアップもできる……(画像などのファイルアップロードにはURLの打ち込みで対応できるGETではなくPOSTを利用しているためログインが保持され続けていないとダメ)。

MTの自動保存機能はまさに“使えない味方が最大の敵”の体現

何故『mt_session』が壊れたかについて思い当たるフシがひとつあります。それは……

自動保存機能……ッッッ!! (これまでのTRASH-NEWSにおける自動保存機能との死闘)

記事やテンプレートなどを勝手に自動保存してくれる自動保存機能の保存先はずばり『mt_session』。つまり重いデータが数秒おきに自動保存されるような設定(=比較的デフォルト)にしておくとデータベースへの負荷がとんでもないことになりかねないということに。まぁ普通のサーバーならばその程度でテーブルが壊れることもないかとは思いますが、何せこのTRASH-NEWSが利用しているのは貧弱サーバーなので……考えられなくも、ない……ッッ!

またいつこのような不具合に遭遇するかわかりませんが、なんにせよ原因と対処策がわかったのでひと安心です。あーすっきりした。お悩みの方がいましたらまずはお近くのphpMyAdminへ。これが今回体得した一番の知恵。

[ 関連キーワード : (キーワードは登録されていません) ]

サイト内検索
検索する
このサイトについて
  • サイト名 : TRASH-NEWS
  • 分類 : ニュースとネタのサイト
  • ジャンル : 井戸端からアレゲまで
  • もっと詳しく見る
この日の人気記事ランキング
2008年05月10日のぶん
1
Windows XP SP3インストールで不具合が起きることが発覚
1097
2
Windows XPのSP3は思いのほかスゴいらしい
555
3
画像解析系ジェネレータ・BannerCodeBattler2(仮)着手開始
167
4
さくらインターネット周りが騒がしいようです
129
5
Windows XP SP3が本日2008/4/30よりついに一般公開開始
99
6
XP SP3適用前にSP2環境下でのベンチマークスコアを測ってみた
72
7
マルタの秘奥義カットイン画像など最近気になったゲーム系のニュース
53
8
DS版DQ5に“新たなる人生の選択”が追加されるよう
32
9
最も安全な組み合わせはLinux+Operaだそう
31
10
テイルズオブ新作『テイルズ オブ ヴェスペリア』のまとめと推察
30

2008年05月11日 0時更新

人気記事ランキング

カテゴリ(折畳表示)
ニュース・ネタ
サブカテゴリを開く
俺研究舎
サブカテゴリを開く
お知らせ
サブカテゴリを開く
特集・企画
サブカテゴリを開く
管理人近況
サブカテゴリを開く
カレンダー
2008年5月
«  04月 - 06月  »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
管理人について
管理人 : 八満かシアン
文系なのにエンジニア、なんてこったい(八満のほう)
今頃たぶん聴いている曲
夏影 ~Cornwall summer mix~ by Lia
月別アーカイブ
2010年
2009年
2008年
2007年
ユーティリティ
RSSフィード
ソーシャルブックマーク
  • iGoogle
  • はてなアンテナにTRASH-NEWSを追加する TRASH-NEWSのはてなブックマーク数 TRASH-NEWSを含むはてなブックマーク
サイトプロフィール
Powered by
  • Movable Type 4.1 + [XHTML + CSS + JavaScript] + PHP
  • TRASH-NEWS / Hachiman_Cian 2007-
このページについて
題名
2008年05月10日の記事一覧
内容
  • 2008年05月10日のニュースとネタをお届けします
TRASH-NEWS ロゴ
TRASH-NEWS ロゴ
TRASH-NEWS : http://www.trash-news.net/