MySQLへの移行

Trackback Albirexオープンに向けて、レスポンスの向上やデータベース管理の柔軟性を考えて、Movable typeをMySQLに移行してみた。
一応全てのデータのバックアップを取った後、ロリポップのマニュアルを見ながらホイホイ!と済ますつもりが、mt-db2sql.cgi実行時にいきなりエラーorz

よくよく他のマニュアルなどを読んでみると、mt-db2sql.cgiはサブカテゴリに対応していない、と・・・。
そこで、すべてのサブカテゴリをトップカテゴリに修正して再構築した後に再挑戦!
が、またしても、エラーorz
いったん途中までmt-db2sql.cgiを実行したために、すでにMySQL上にいくつかのテーブルができており、それが邪魔をしてデータベースが構築できないらしい。
そこで、ロリポップからphpMyAdminにログインして、直接データベースをいじってみる。コワイ(苦笑)
データベース名をクリックすると、現在作成されているテーブル一覧が表示される。その中で、「mt_*****」のような名前のテーブルがMovable Type関連のものだと思われたので、チェックボックスにチェックを入れて、すべて削除。
そうしてから再び(三たび、か?)cgiを実行すると、ようやく「All went well.」のメッセージが出た。
こうしてすべてのデータがSQLデータベースに移行できたので、ブログを元に戻す作業に取りかかる。
すべてトップレベルにしたカテゴリを、以前のサブカテゴリ化した状態に戻し、「再構築」。
ここで、「500 Internal Sever Error」・・・orz
SQLにすればこのエラーは起きなくなる、と聞いていたのに。なんでやねん。
またまた、あちこちを調べて回り、データベースに「オーバーヘッド」状態なるものが起きているらしいことが分かる。
「phpMyAdmin」の画面をみると確かに、いくつかのテーブルに関して右側に赤文字でオーバーヘッドの数値が書いてある。その数値部分をクリックすると、「テーブルの最適化」なる項目が・・・。
これは当然、最適化をしろ、ということであろうと確信して、最適化を行う。
赤字が、消えた。
念のためmt.cfgも書き換えて、一度に処理するエントリー数を「40」から「20」に引き下げてみる。
そして、何度目かの「すべてを再構築」。





ようやく、エラーもなく終了。ほっ。
疲れました。
たいへん疲れました。
付け焼き刃でやるもんじゃありませんな。



msnからのトラックバック表示

トラックバックは全てのブログの共通仕様、と思っていたのだけれど、どうもmsnは違うらしい。msnからこのブログにトラックバックを送ると、ブログ名やタイトルが表示されず、トラックバック記事のURLが表示されてしまう。
そこで、phpスクリプトを利用して、ほかのブログからのトラックバックと同じように表示されるようにしてみた。

phpを使うので、まずは各アーカイブがphp化されていることが前提。
個別エントリーアーカイブの場合、デフォルトテンプレートのトラックバック表示部分は次のようになっている。

<MTPings>
<p id=”p<$MTPingID$>”>
» <a href=”<$MTPingURL$>”><$MTPingTitle$></a> from
<$MTPingBlogName$><br />
<$MTPingExcerpt$> <a href=”<$MTPingURL$>”>[続きを読む]</a>
</p>
<p class=”posted”>トラックバック時刻: <$MTPingDate$></p>
</MTPings>

この赤字部分を、以下の青字部分のように書き換える。

<MTPings>
<p id=”p<$MTPingID$>”>
& raquo; <a href=”<$MTPingURL$>”>
<?
$title = “<$MTPingTitle$>”;
if(preg_match(“/^http:\/\/spaces\.msn\.com/”, $title)){
$string = “<$MTPingURL$>”;
$list = explode (“/”, $string);
print “<$MTPingExcerpt$></a> from $list[4]”;
}
else { print “<$MTPingTitle$></a> from “; }
?>

<$MTPingBlogName$><br />
<$MTPingExcerpt$> <a href=”<$MTPingURL$>”>[続きを読む]</a> 
</p>
<p class=”posted”>トラックバック時刻: <$MTPingDate$></p>
</MTPings>

php関数のpreg_match関数で、「$MTPingTitle$」に「http://spaces.msn.com」が含まれるかどうか調べ、含まれていればmsnからのトラックバックと判定する。
msnからのトラックバックの場合は、「$MTPingTitle$」の代わりに「$MTPingExcerpt$」、「$MTPingBlogName$」の代わりにmsnブログのメンバーidを表示する。msnブログのメンバーidは、explode関数でトラックバック記事のURL$MTPingURL$を「/」で分割し、その5番目の要素を取り出すことで表示できる。



デザインを変えてみた

連休?!ということで、ブログのデザインを変えてみた。
少しあっさりめにしてみたんだけど、あんまり変わり映えしないかしらん?



最新エントリーのみ追記の内容を表示する

一記事あたりの文章が長いと、インデックスページが長くなりすぎてスクロールが大変。なので、「内容」部分は記事の概要のみにして、「続きを読む」をクリックすることで全文を表示するようにしている人も多いはず。
しかし、せめて最新のエントリーくらいはクリックなしでも全文が読めるようにしておきたい。
そこで、最新のエントリーのみ「追記(extend)」の内容を画面に表示し、それ以外のエントリーの場合は「→続きを読む」で個別アーカイブにリンクする、というふうに改造してみた。

インデックス・テンプレートの<MTEntryIfExtended>?</MTEntryIfExtended>の部分を以下のように変更する。

<MTEntriesHeader>
<div id=”more”>
<$MTEntryMore$>
</div>
<MTElse>
<MTEntryIfExtended>
<p class=”extended”><a href=”<$MTEntryPermalink$>#more”>続きを読む</a>
</p>
</MTEntryIfExtended>
</MTElse>
</MTEntriesHeader>

<MTEntriesHeader>は、そのエントリーが最初のエントリーである場合だけ内容を表示するタグ。
<MTElse>で、それ以外の場合には<$MTEntryMore$>を表示せずに個別アーカイブへのリンクを表示するようにしている。
全てのエントリーを全文表示するよりも画面がスッキリするし、なかなかいいのではないかな?w
それに伴って、インデックスページのエントリー表示件数を5件から10件に増やしてみた。



ようやくブロードバンド

幾多の懸案事項を乗り越えて、我が家でも本日ようやくADSLが開通。これで快適ネットライフを送れる、のかな?

使っているPCのスペックが低いので、Web表示のスピードには劇的な変化は訪れていないのだけれど、たまたまアンチウイルスソフトのアップデート情報が来ていたのでダウンロードしてみたら、これが速い速い!1MBほどのデータが、ぴゅーーーっと(笑)、あっという間に終了。
えー、次はJ’s Goalでゴールシーンの動画でも見てみるかな♪



« 前のページ次のページ »

  •  

    ブログパーツの貼り付け方はこちらへ
  • 月別アーカイブ

  • あいさつ掲示板

  • メタ情報