Movable Typeの最近のブログ記事
ここで使っているブログのシステムMovable Typeのデータベースを、SQLiteからMySQLに入れ替えました。
何だ今頃、と思われるかもしれないけど、以前ロリポップサーバーを使っていたときMySQLでいろいろ不具合があり、結局SQLiteにした経緯があるのです。現在のさくらサーバーに引っ越してきても、そのまま使ってました。
しかし何年も使っているとデータが膨大になってきて、コメントを書いても反映されるまでえらい時間がかかる、記事を書いて再構築するとタイムアウトする、トラックバック送信ができない、などなど問題が続出しておりましたのです。
そこに、MT5.0の登場。
新しいMovable TypeではSQLiteは使えなくなるらしい。
ということで、将来のバージョンアップにも備えて、ここで一念奮起。
入れ替え作業を行ってみることにしました。
何度か試行錯誤して。・゚・(ノД`)・゚・。
ようやく完成。
見た目にはぜんぜん変わってないわけですが(;´Д`)
一応、記事やコメント投稿時にレスポンスが遅くて画面が真っ白になってしまう状況は改善されたと思います。
相変わらず、反応は遅いですがw
それと、これを機会に、コメント投稿時にcaptcha文字を入力してもらうようにしました。
スパムフィルタもいれているんですが、すり抜けた書き込みが画面汚しになるもんで・・・。
ちょっとコメントが面倒になりますけど、ご理解ください。
入れ替え作業の大まかな手順としては。
- 現行のMTで「システムメニュー→ツール→バックアップ」でバックアップファイルを作成しダウンロード。
- 現行MTと同一バージョン(私の場合4.01)を別ディレクトリにインストール。インストール中に、使用するデータベースをMySQLに設定する画面があるので、そこで細かい情報を設定(さくらサーバーではデフォルトで1個用意されている)。
- 新MTにログインし、自動的に作成されてしまうMy First Blogを削除。ついでにphpMyAdminでDBに接続して、blogテーブルのblog_idのオートインクリメントの値を「1」に戻しておく(blog_idが現行のものと一致するように)
- 新MTのimportフォルダに、最初に作成したバックアップファイルをアップロード
- 新MTの「システムメニュー→ツール→復元」で、データをすべて復元
- 念のため、新MTのブログ公開先URLおよびパスを、現行ブログとは違う場所にして、ブログを再構築
- 再構築したブログが現行ブログと同一になっているかどうかを確認したのち、現行ブログと同一の「公開先URLおよびパス」に指定しなおして再構築
このなかでいくつかポイント。
バックアップメニューからバックアップファイルを作成する際、mt-congif.cgiに
TempDir /home/***/www/mt/temp
のように出力先のtempフォルダを指定しておくこと。でないと、バックアップファイルが行方不明になります(笑)
それから、自分の場合blog公開ディレクトリとMTをインストールするディレクトリが並列しているので、同じくmt-congif.cgiのCGIPathおよびStaticWebPathを、相対パス記述でなくURL記述(http://~)に直しました。ここをちゃんと直さないと、コメントやトラックバック用のURLが記事上に正しく表示されません。
あとは、ウィジェットテンプレートをいくつか手直ししたくらいかな。
手間はかかるけど、そんなに複雑な工程ではないですね。
ただ、久しぶりにこういう作業をしたので、正直頭が疲れました。
歳だなあ・・・w
Movable Typeのブログに対してmsnブログからトラックバックを行うと、ブログ名ではなくてブログURLのid部分が表示される件。
たとえば、私の実験用のブログ「渚の実験室」(http://y-nagisa.spaces.live.com/)からTrackback Albirexにトラックバックすると、ブログ名の欄が「渚の実験室」ではなくて「y-nagisa」と表示されてしまう。
これはmsn側の仕様だからしょうがないので、こちらで何とか対策を立てるしかない。
以前はTrackback.pmを直接いじって対応していたのだけれど、これだとプログラム内に直接日本語を書き込むことになってしまって、他の部分の処理に多少の影響が出ていた(ジジイからのトラックバックがたまに文字化けする、アイアンの温泉ブログの名前が一部化ける、など)。
システムのバージョンアップのついでに、msn対策も変更してみることにした。
今回使ったのは、Regexというプラグインを使う方法。
- プラグインを所定のページからダウンロードして解凍する。
- 解凍後にできたファイルを、それぞれ指定されたディレクトリにFTPでアップロードする。
- Movable Typeのテンプレートのうち、トラックバックを表示するテンプレートの上部に、下記の記述を追加する。
<MTRegexDefine name="pattern1">s|A|B|g</MTRegexDefine>
A:msnブログのid (例:y-nagisa)
B:msnブログのブログ名 (例:渚の実験室) テンプレート内のトラックバック元ブログ名を表示するタグに、regex条件を書き加える。
<$MTPingBlogName regex="pattern1"$>
これで、「A」というブログ名が「B」に変換されて表示される。変換したいブログ名が複数存在する場合には
<MTRegexDefine name="pattern2">s|C|D|g</MTRegexDefine>
<MTRegexDefine name="pattern3">s|E|F|g</MTRegexDefine>
・
・
<$MTPingBlogName regex="pattern1 pattern2 pattern3"$>
などのように、変換条件を書き足してゆく。
トラックバックしてくださるmsnブログの個数分だけ条件を書き足していかなければならないので、手間と言えば手間なんだけれど、システムのライブラリをいじるよりテンプレートをいじる方がずっと楽なので、当面この方式でやってみようと思う。
その他にも、
<MTRegexDefine>s|千葉ちゃん|<font color=red><strong>俺の千葉ちゃん</strong></font>|g</MTRegexDefine>
などと定義して<$MTEntryBody$>タグにregexを指定してやれば、エントリーで
「千葉ちゃん」
と書くだけで、表示の時に
「俺の千葉ちゃん」
と自動表示できるとか、使い道は多いwww
「Everyday,"Albi"day」はMovable Type 3.5からMovable Type 4.0へ、システムの新規インストールでバージョンアップを行ったが、「Trackback Albirex」については既存環境からのアップグレードという手法で新システムに移行してみた。こちらは3.4から4.0へのバージョンアップになる。
くわしくはヘルプの「既存環境からのアップグレード」を参照のこと。
以下、備忘録として手順を記す。
- 現行ブログのバックアップを作成する。
- サーバー上のMovable Type本体を設置しているディレクトリ(MTディレクトリ)を、まるごとFTPでハードディスクに保存
- サーバー上のブログ公開ディレクトリを、これまたFTPでまるごとハードディスクに保存
- 念のため、ブログの全記事を「エクスポート」でハードディスクに保存
- データベースとして使用しているMySQLのデータを、これも念のためにバックアップ保存
- サーバー上のMTディレクトリ内のファイルを、全て削除する。
- MTディレクトリ下に、Movable Type 4.0の全ファイルをFTPでアップロードする。
- cgiファイルのアクセス権を変更(さくらサーバーなら「705」に)。
- ハードディスクに保存したファイルの中から、「mt-config.cgi」ファイルを再びサーバーにアップロードする(これでこれまでの設定が引き継がれる)。
- これまで利用していた各種プラグインを、プラグインディレクトリにアップロードする。
- ブラウザで「mt.cgi」にアクセスし、ログインする。自動的にアップグレードが始まる。
- 管理画面が表示されたらアップグレード成功(一度でうまくいったよ!)。
- 最新のテンプレートを利用するために、テンプレートのリフレッシュを行う。
- ここでいったんブログ全体を再構築してみる(デザインがデフォルトに変わるので、ちょっとびっくりするw)。
- デザインのカスタマイズをちまちまと行う(実は、ここからがいちばん大変なところ)。
- スタイルキャッチャーを利用して、自分のオリジナルデザインに一番近いスタイルを適用してみる。
- これまでのテンプレートがバックアップされて残っているので、それを参考にしながらデフォルトのテンプレートをカスタマイズしていく
- スタイルシートの変更は、「styles.css」ファイルに直接書き込んでいく(インポートしているスタイルシートファイルを書き換える必要はない)。
- アーカイブテンプレートのマッピングの変更を忘れずに行う(カスタマイズしている場合)。
- スタイルキャッチャーを利用して、自分のオリジナルデザインに一番近いスタイルを適用してみる。
- 再構築してみる。エラーが起きる場合には、エラー内容のメッセージをよく読んで対策を施す。
- 必要なプラグインがインストールされていないとエラーがおきる
- 古いバージョンからのアップグレードだと、MTタグが古すぎて(?)エラーになることも。タグの仕様が変更になっていないか、新しいタグが活用できないか、調べてみる
とりあえずはこんなところで。
あとはスムーズに稼動してくれることを祈るのみw
MT4.0は、管理画面がとっても使いやすくなっているので、アップグレードのしがいがあります。
3.4以降に搭載された新機能もこれまであまり使っていなかったので、いろいろ活用してみようかと思っちょりますv
Movable Type 4.0 暫定対応版の「mt4i.cgi 2.22」が出ました。
(「mt4i」とは、MovableType用 携帯電話向け変換プログラムなりけり)
暫定版っていうことなので、後日正式版がリリースされるのかもしれない。
けど、とりあえずインストールだ!
結果はこちら。
Everyday, Albiday mobile ver.
インストールや設定がすこぶる簡単で、しかも管理機能が充実していて高機能。
携帯からコメントもできます。
当サイトに関してはあんまり需要がないのかもしれないけどw、自分としてはありがたいプログラムなので、早めにバージョンアップ版が出て嬉しい限り。
自作版の暫定携帯対応版では、やはりコメントを表示するのが精一杯で、コメント投稿は無理だったもんなー。
文字コードShift-JISで投稿されたコメントを、utf-8でデータベースに格納してやらないといけないんだが、それをいじるためにはMT本体のモジュールをいじるか、自分でコメント処理用のcgi書かなきゃならない。そんなことまでしてられないもんねえ・・・。
なので、こういうフリーのプログラムだったりプラグインだったりがネット上にたくさん公開されているのは、本当にありがたいことだと思うのです。感謝。
自分で作ってみた携帯版のテンプレートは、後日何かの役に立つこともあろう。
MovableTypeを始めとしたCMSで情報を発信しようという企業や団体が増えているし、仕事上、いろんなカスタマイズが出来るのは強みになると思うので!いえす、positive thinkin'!
私の設定が悪いのかもしれないが、movable typeを4.0にバージョンアップしたら、ブログを携帯から読み書きできるソフト「mt4i.cgi」が動かなくなってしまった(涙)
configファイルから設定を読み込んでいる部分のエラーかも、と思い、旧バージョンのconfigをコピーしてみたりしたのだけれどエラーが解消せず。
おそらく、しばらく待っていればMT4.0対応のmt4iがリリースされると思うのだけれど、出先からブログを確認したいときなど何かと不便なので、携帯対応のブログ画面をとりあえず自前で作成してみた。
一応の完成ページはこちら作成方法に興味がある方は以下を。
とはいえ、今回は「3.X」系から「4.0」へというメジャーバージョンアップなので、アップグレードインストールでは不都合が起きる可能性もあると踏んで、新規インストールで心機一転巻きなおし(なぜ)を図ることとした。
心配だった最大のポイントは、これまで使っていたプラグインがそのまま4.0でも使えるかどうか、ということ。
実際にインストールしてみて、以下のものは正常に稼動することを確認。
- MTCollate.pl(最近のコメントのツリー化に利用)
- recently-pinged-on.pl(最近のトラックバックを表示するのに利用)
- mt-i18n.pl(トップページで、各エントリーの最初の120文字だけを表示するのに利用)
- Collect.pl(トップページで、各エントリーの最初の写真をサムネールで表示するのに利用)
あとは、カテゴリー回りの設定をやり直し。
新しくプラグインを導入してみた。
MovableTypeのカテゴリーソートに使える数字置換プラグイン
さて、見た目は別としてw、バージョンアップして何がよくなったかというと。
- 管理画面が非常にすっきりして、目的の機能に移動しやすい
- 投稿画面が使いやすくなった(とくに画像のアップロードと挿入)
- エントリー単位で再構築できるようになっている
- テンプレートがパーツ化されているので、(構成を理解してしまえば)カスタマイズが楽
- カテゴリーアーカイブに、月別のアーカイブが導入された。これにより、カテゴリーアーカイブページのphp化による分割が不要になった。というか、面倒くさいからやらないで済ませよう、ということなんだがw
これからも少しずつカスタマイズしていくので、安定するまで時間がかかりそう。
それも楽しみの一つですからね。うふふ。
Movable Type 4.0 を本日、製品版として出荷させていただきます。6月5日のベータテスト開始以降、多くのユーザー様から、沢山のフィードバックをいただきました。皆様のサポートのおかげで、正式版をリリースできましたことを、心から感謝申し上げます。
このブログを作成しているシステム「Movable Type」が大幅なバージョンアップを行うということで、ベータ版が出たときから何度も使い心地やカスタマイズ法を研究wしてきたんだけど、ようやく本日正式リリースとなった。さっそくダウンロードしてインストールしてみた。
Movable Typeはバージョンが2.6?くらいのころからずーっと使っていて、かなりプラグインを入れたりカスタマイズを行ったために、3.2あたりから導入されたスタイルキャッチャーだの、デフォルトテンプレートを基にした機能がまったく使えなくていたのだ。デフォルトテンプレートをまったく使わず、3.0くらいのバージョンのときに自作したテンプレートを使用せざるを得なかったのさ・・・。
なので今回は、テンプレートをいじりすぎずに、できるだけスタイルシートの変更でデザインを考えよう、と決意したw
しかーし!
よくよく見てみれば、最近のテンプレートは、それ自体に細かいことが書いてあるわけでなく、各パーツごとの「モジュール」なるものの組み合わせでできているのだな!今回、だいぶあちこちいじってみて、ようやく全体像がつかめてきたところ。
なので今後は、自作のモジュールやウィジェットをパーツとして組み込んでいくことで、デフォルトテンプレートをいじることなくデザイン変更ができそうな予感w
新システムに移行するのはまだ先になると思うけど、いままでより管理が楽になる、という方向に持っていければよいのですがね。
先日Six apartさんからアナウンスが来ていたので、さっそくプラグインの設定変更をおこなってみた。
これまで使用していたブラックリストサーバーが停止になったそうなので、念のため案内されていた別のサーバー( zen.spamhaus.org)をサーバーリストに追加してみた。
そうしたらば、これまで弾かれていなかったトラックバックが、やたらめったら弾かれるでごわす。
ナウロさんとこも、msnブログも、みんな「迷惑トラックバック」リスト入りしてしまう。
ログを見ると、IPアドレスで弾いている様子。ライブドアブログやmsnブログに関しては、ドメイン自体をホワイトリストに登録してあるから大丈夫だと思っていたのだが、IPアドレスが禁止IPと完全に一致してしまうとスパムとみなしてしまうようだ。
これでは大変なので、結局zen.spamhaus.orgをIPアドレスのブラックリストから外すことにした。
リストはbsb.spamlookup.netだけの指定になってしまうが、これで漏れが多いようなら、また後日対策を考えることとする。
同様の変更をおこなった人は、しばらく気をつけていたほうがいいと思われ。
大事なコメントやトラバが「迷惑リスト」入りしている可能性があるので、大事なものを救出したりホワイトリスト入りさせたりする作業が必要になるかも。
それにしても、名古屋戦のあとに「Trackback Albirex」へのトラックバックが激減したので、「みんな、どうしちゃたんだろー」と心配してましたよ。苦笑
結局はこちらの設定変更のせいだったのね。失礼しました。
Trackback Albirexのサイトが503エラー(プログラム過負荷によるサーバーエラー)を頻発するため、やむを得ず別サーバーをレンタルして運用開始して2週間が過ぎた。
エラーに関してさくらサーバーさんに問い合わせのメールを出したところ、こんな返事が返ってきた(要約)。
あなたのサーバを確認したところ、CGIやPHPによる過負荷やアクセス数等に関する制限がかかっていた。いったん緩和するけど、今後同様にサーバに許容範囲を超える過負荷等が発生したら、また制限が設けられる可能性があるよ。
特段アクセス数が多いわけでもないし、負荷がかかるプログラムを使っているわけでもないので、なんでエラーを起こすのか(というか、プロバイダ側からアクセス制限をかけられるのか)、いまいち不思議ではあった。ふと思いついて調べてみると、原因と思われることにぶつかった。これだ。
「条件付きGET」のススメ@Ogawa::Memoranda
PHPファイルなどの動的コンテンツにアクセスした時には、上記の両ヘッダを返されないため、そのままでは条件付きGETが行われません。
簡単に言うと、インターネットの世界では、サーバーにあるデータの更新時刻ととパソコン内にあるデータの更新時刻を比較して、サーバーのデータの方が新しければサーバーからデータを読み込み(条件付GET)、そうでなければパソコン内からデータを読み込む、という仕組みになっている。
ホームページの画面というものは、アクセスするたびにサーバーからダウンロードされるわけではなくて、以前見たときから更新されていないページならば、自分のPCに保存されたデータを読み出して見ていることになるわけだ。そうすることによってサーバーからダウンロードされるデータ量を減らすことができるので、情報の交通渋滞が起きるのを防止できるってわけ。
拡張子が「.html」になっているページは上記のような更新時刻をチェックする仕組みがあるんだが、Trackback Albirexのサイトは各ページの拡張子が「.php」になっているので、そのままでは更新時刻を知ることができない。従って、毎回アクセスするたびにデータのダウンロードが発生するので、「過負荷」状態が発生してしまう。
解決策としては、phpのページにも、htmlページと同様の「Last-Modifiedヘッダ」を付加してやればよいわけで。
その方法が上述ページに記載されております。
さっそくやってみようと思ってるところ。
トラックバックのテスト
Trackback Albirexへのトラックバックの文字化けが生じていたので、文字化け防止策を施してみました。
gooブログとか、fc2ブログとか、ブログの文字コードがEUC-JPの場合に文字化けが起こりやすいようです。
と言っても毎回化ける訳じゃなくて、時々正常に文字コードを認識できないことがあるようなのです。
タイトルや概要に特定の文字が含まれている場合とか、原因はいろいろ考えられるんですが、まだ特定はできていません。
とりあえず「小粋空間」さんの
Trackback文字化け対処
をやってみました。
うまくいくといいんだけどなー。