MediaWikiでちょっとした情報ページを自作しているが,ある時サーバ(ロリポップ)がMySQLとPHPのバージョンを上げたので(どちらも4→5),自作ページもアップデートした.
すると,その直後でもないのだが,数時間後から突如として全てのページが表示されなくなった.
Firefoxだと,
ページの自動転送設定が正しくありません.このアドレスへのリクエストに対するサーバの自動転送設定がループしています.
という非情なメッセージが現れる.
じょーだんじゃない.
慌ててindex.php,localsettings.php,redirect.phpなどを見てみるが,どこにバグがあるのか分からない(PHPコードを書けないんだから分からなくて当たり前).
MediaWikiをバージョンアップさせると良いだろうかと考えてみたり,でもレンタルサーバだからデータの完全なバックアップも難しく迂闊なことは出来なさそうだし,と丸1日他の情報を検索.
しかし完全に手詰まり.
仕方がないから出来るだけのバックアップをとった後に,腹を括ってMediaWikiの同じバージョンを上書きインストールしてみた.インストールのダイアログには以前と同じ全く同じ内容を書き込んだ.
するとインストールが完了した瞬間に「以前のMediaWiki用データベースを発見」とメッセージが出て…….
無事に復旧完了!
地獄のリダイレクトループも消滅!
あー良かった,と一件落着.
ところがすぐにURLがおかしいことに気付く.
異常が起きる前のURLは,Wikipediaと同じく,
http://hogehoge.com/hoge/index.php/メインページだったのが,復旧後は,
http://hogehoge.com/hoge/index.php?title=メインページになっている.
いわゆるugly URLというやつだ.別に閲覧動作に問題はないので支障はないのだが,何となく格好悪い.
そこでMediaWikiのページを参考にしてこの方法を試してみた.
- 言われるがままの.htaccessファイルを作成してMediaWikiのディレクトリに置く
- LocalSettings.phpの当該部分を指示通りに書き換える(デフォルトでコメントアウトされている箇所を正規にし,逆に正規部分をコメントアウト)
地獄のリダイレクトループ再現!!何じゃそりゃああああああああああ!!!!!!!
面食らいましたね.
そこでもう一度このページの「In LocalSettings.php」の書き換え方をよーーく読み返す.
## If using PHP as a CGI module, use the ugly URLsふむふむ,で俺のLocalSetting.phpは?
…
$wgArticlePath = "$wgScriptPath/$1";
## If using PHP as a CGI module, the ?title= style usually must be used.ふむふむ,間違ってないじゃないか……え???
$wgArticlePath = "$wgScript/$1"; ←コメントアウト解除
# $wgArticlePath = "$wgScript?title=$1"; ←こちらをコメントアウト
## If using PHP as a CGI module, the ?title= style usually must be used.あれ?で,正しくはどうあるべき?
$wgArticlePath = "$wgScript/$1"; ←コメントアウト解除
# $wgArticlePath = "$wgScript?title=$1"; ←こちらをコメントアウト
## If using PHP as a CGI module, use the ugly URLsあれーーーーー?????「$wgScript」と「$wgScriptPath」じゃ違うぞ?????
…
$wgArticlePath = "$wgScriptPath/$1";
そこで自分のLocalSettings.phpをさらに修正してみた.
## If using PHP as a CGI module, the ?title= style usually must be used.すると…….
$wgArticlePath = "$wgScriptPath/$1"; ←さらに修正
# $wgArticlePath = "$wgScript?title=$1";
地獄のリダイレクトループは消滅し,ugly URLが美しいshort URLに!!ついでに言うと,short URLは復旧前よりも更に短くなってくれていた.ありがたや.
復旧前: http://hogehoge.com/hoge/index.php/メインページPHPコードをまともに理解しないまま適当にやっただけの結果だが,推測するに,
復旧後: http://hogehoge.com/hoge/メインページ
MediaWiki 1.6.12が生成するLocalSettings.phpはshort URLに関してPHP5と互換性がないんじゃないか?という怪しい結論になった.
ということは最初のリダイレクトループも再インストールなんかしないで「$wgScript」を「$wgScriptPath」に書き換えるだけで解決していたのかも知れない.
ともあれ結果オーライ (← きちんとPHP勉強しろよ).
0 件のコメント:
コメントを投稿