Oct 2009      < >

SunMonTueWedThuFriSat
        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

monthly archives

2011
2010
2009
2008
2007
2006
2005

Older diary (- June 2005)
Older diary (Macintosh)

« October 17, 2009 | main | October 19, 2009 »

"October 18, 2009" archive

October 18, 2009

はてなスター 

Blog の手入れを始めるとあちこちが気になってしまい、作業が止まらなくなってしまう病気. 周期的に発病しますね.

Site encodingUTF-8 にしてからだと思いますが、Web 拍手関連が文字化けするようになっていました.
ほとんど拍手なんかもらえないので放置してましたが、一回拍手して次のページからメッセージを送ろうとすると、Internal Server Error が
いつからこうなったのか、まったく寝耳に水.

とりあえず文字化けだけでも直そうと手入れをしたけど、部分的にしか改善せず.
ぐぐってこんなページを見つけてみたけど、アプローチとしては自分と一緒でした.
上記の Server Error はさっぱり見当がつかないし、安易な解決策ですが、拍手ページを抹消しました(おいおい
今まで拍手くれた方、どうもありがとうございました


Web 版の拍手に登録しても良かったけど、どうしても自ページと比較した場合の見た目の違和感は避けられませんし、個人的にはそこがいちばん嫌だったりするのでね.


これだけでは身も蓋もないので、代替案としてはてなスターを付けてみました.

既存ブログサービスの利用ではないので、どうしても余分な作業は必要になります.


うちは、それぞれのエントリ<div class="entry"> でくくられており、タイトル<h3> で指定してあるので、ここまではチュートリアルどおりでできてしまいました.

問題は、permalink を規定する要素
チュートリアルの例では、タイトルの <h3> の中に <a> タグで permalink が指定してあることになっていますが、うちはフッタに permalink を置いてます.

タイトル自体を <a> タグで囲って permalink にしようかとも思ったけど、自分の好みの動作ではなかったし、第一、エントリアーカイヴのページでタイトルをクリックして自分に飛んでくるのはなんとも間抜けです.

仕方ないので、

<h3 class="entry-header"><$MTEntryTitle$><a href="<$MTEntryPermalink$>"></a> </h3>

として、タイトルの後に空リンクで permalink を置いてみました.


これらを、エントリ、日別、月別、カテゴリの各アーカイヴページにも施して、終わりです.


よろしければ、スターつけてやってね.

Movable Type 再構築時の Internal Server Error 解決 

初にお断りしますが、すっごいありがちな終わり方をします. ちなみに、うちの MT は、ver. 3.35 です.


Blog 再構築で、Internal Server Error (500 error) が出るようになったのはかなり前です.
インデックステンプレートとエントリアーカイヴは問題ないのですが、日別、月別、カテゴリアーカイヴの再構築がエラー終了するという症状.
ざっと見たところアーカイブページもちゃんと更新されてるっぽかったので、そのまま放っといたのがそもそもの間違い.


このところ、画像のポップアップを Highslide JS にしたり、はてなスター付けたりと、割と目につきやすい変更をしたわけですが、エラーのでるアーカイブページではやっぱり更新されてない部分があることを見つけました(いや、当たり前なんすけどね)
日別、月別では 2007 年 6 月以前、カテゴリではばらばらにいくつかの部分で、再構築が効いていません.


MovableType での再構築時 500 error は FAQ みたいで、同じような情報がごろごろ見つかります.
多くが述べているところは、再構築に時間がかかりすぎている という話. これは、エラーが初発したときにすでに見ていました.
しかし、いちばん時間のかかっていそうなエントリアーカイブの再構築(40 エントリきざみ)がうまくいっているわけだから、これは関係ないだろうと思い込んでいました.

他に記載があったのは、特定のエントリをアップするときに何かの障害が起こり、データベースに傷が残っている というもの.
いつごろからエラーが出たのかを思い出し、データベースの所定部分を削除する なんて書いてあります.
ちょっと自分にできそうにない操作だし、下手をして blog 全体をダメにするのも怖かったので、放置していたというわけです.


今回改めて現象をみてみると、ある日突然始まったことでもあるし、どうも後者ではないかという気がしてきました.
データベースの書き出しをして、MovableType の再インストールからやりなおせば? と悪魔がささやきましたが、ひとまず再構築時間の件をなんとかしてみることにしました.


見たページでいちばん参考になったのがこちらです.


mt-config.cgi の変更をします.
まず変更しろと書いてある EntriesPerBuild ですが、自分の環境ではこの記載がそもそもなされていませんでした.
デフォルトが 40(件)ですので、多くのページで勧めてある 10 に減らしてみました.
確かに、10 エントリずつ再構築されるようになります.

これは、エントリアーカイブに関する再構築件数の話で、日別、月別については、この数値の何倍でやるかということを、CMS.pm 内で規定するようです(CMS.pm は、lib/MT/App/ にあります)
なんともややこしいですね.

さて、この変更で、日別、月別のエラーは解消してしまいました.
ああ、最初から先入観持たずにやってれば良かったですよ.


これでも、カテゴリアーカイヴだけはエラーが消えません

次にタイムアウト時間の延長をしてみました.
PingTimeout の数値を増やすように書いてありますが、ver. 3.3 以降は HTTPTimeout に置き換わっているようです. 同様の修正をする方はご注意を.

結果は、NG
そもそもそんなに時間が経過しないところで 500 error が出ますので、タイムアウトではないんでしょう.


あれこれ検索しているうちに、rebuild 支援ツールなるものの存在につき当たったのですが、ちょっと古すぎ.
そして、ようやく見つけたのがここです.
ほとんど同じ状況なので、かなり期待しました.

紹介されている、SmartRebuild plug-in を早速導入.

すかっと解決しました.
動作をみていると、カテゴリアーカイヴの再構築を 10 カテゴリずつに区切って行っているようです.
タイムアウトではなかったのに、なぜこれで解決するのかは、よく分かりませんね.


ま、結果オーライです.

Blog 自体は定期的にローカルにそのままバックアップしてるし、データベースの書き出しも行ってはいるけど、根の深いエラーでブログシステム自体の再インストールになるのは、ちょっと恐怖ですねぇ.
ふつうのサイトなら、自分の知識でもなんとかなるけど.
今回は、そういうトラブルでなくて、ほんとに良かったです.

ABOUT

Archive "October 18, 2009"

No. of entries: 2