MT4導入

ようやく重い腰を上げ、MovableType4を導入しました。
SQLiteからMySQLにDBを移行したため、かなり面倒な作業になってしまいました。もう2度とやりたくない感じです(トホホ・・・)。

とりあえず、大きな発見があったこととしては、MT4が各エントリーに勝手に振るIDは振り直せるということです。これはMySQL環境だからできたことですが・・・phpMyAdminからmt_entryというテーブルを見つけて、こいつの中身を空にしちゃいます。それから改めてエントリーをインポートするだけ。

気が向いたら、別の記事に詳しくまとめるかも。今日はもう書く気力が残っていません。。

追記– 2007年4月23日(月)

phpMyAdminから直接DBをいじったせいか、アーカイブのエントリーの書き出され方がおかしくなったりと怪しいトラブルが発生していました。インポートを再びする関係上、コメントやトラックバックのIDも振り直さなければならなかったり・・・といろいろ面倒なことになってしまい、結局DBテーブルをクリアしてMT4のインストールから全部やり直しましたorz
生半可な知識でDBを直接いじるのは危険なんだな・・・と反省。IDの振り直しの話はやはりなかったことにしといてください・・・。

WinXPローカルでXAMPPを使ってMovableTypeを動かす

追記 – 2010-03-14

2010年3月時点では、この記事の情報は正確でなくなっている可能性があります。現在の情報で当記事を書き直しましたので、よろしければそちらをご覧ください。

  1. XAMPPのインストール、Apacheの設定
  2. ActivePerlのインストールと設定、MySQLの設定
  3. ImageMagickのインストール、Movable Typeのインストール

ローカルでMTが動かしたくて数日格闘した結果、無事動かすことができました。せっかくなのでここにやり方をまとめます。

環境と準備

  • OSはWinXP SP2
  • XAMPPは2007年5月30日時点の最新版(version 1.6.2)
  • XAMPP Perlアドオンは2007年5月30日時点の最新版(version 5.8.8-2.2.4)
  • DBはMySQL
  • xamppをインストールするディレクトリはC:\xampp(デフォルトでそうなってる)

まずはXAMPPをダウンロード。ここでは[ベーシックパッケージ]のインストーラ版を使用。

それからPerlアドオンもダウンロードしておく。同ページからDL可能。ここではインストーラ版を使用。

ローカルでMTが動くまで

  1. XAMPPのインスーラを実行。
    インストールの途中apache、MySQLはサービスとしてインストールしておく(自動起動になる)。他の設定はここでは全てデフォルトに。C:\xamppにインストールされる。ファイルがそれなりに多いのでちょっぴり時間かかる。
  2. Perlアドオンもインストール。インストール設定はデフォルトでOK。ファイルがそれなりに多いのでこちらちょっぴり時間がかかる。
  3. Apacheの再起動(アドオンを有効にするため)
  4. http://localhost/ にアクセスする。最初に言語選択画面が出るので「日本語」を選択。その後「XAMPP Windows版へようこそ Version 1.6.2 !」と表示された画面が出るはず。ステータスをチェック。
  5. CGIファイルの関連付けを変える。
    拡張子が「.cgi」のファイルを右クリック→プロパティ→プログラムの変更→参照ボタン→C:\xampp\perl\bin\perl.exeを選択してOK。
  6. C:\xampp\apache\conf\http.confの設定。
    エディタで開いて、372行目、#ScriptInterpreterSource registry#を外す。これでファイルの関連付けに基づいてPerlのパスが処理されるようになる。保存してApachの再起動
  7. DBの準備
    http://localhost/phpmyadmin/にアクセス
  8. 「新規データベースを作成する」に「movabletype」(DB名)と入力して「作成」ボタンを押す
  9. セキュリティ対策 (1)

    • メニューの「特権」をクリックして「root」ユーザの「操作」のアイコンを押す
    • 「パスワードを変更する」でパスワードを入力。「実行」ボタンを押す。するとphpMyAdminにアクセスできなくなる。
    • C:\xampp\phpMyAdmin\config.inc.phpをエディタで開き、81行目のpasswordの値に先ほど設定したパスワードを入力して保存。するとphpMyAdminにアクセスできるようになる。(※ セキュリティ対策(3)を先に実施すればこの設定は不要…?)
  10. セキュリティ対策(2)

    C:\xampp\htdocsC:\xampp\htdocs\xampp.htaccessファイルを設置して、外部からのアクセスを遮断。

    ファイルの内容は

    order deny,allow
    deny from all
    allow from localhost
    allow from 127.0.0.1

    とかでいいはず。
    よく分からない人は.htaccess Editorとかで作りましょう。かく言う私もよく分かっていません。 ちなみに.htaccessファイルはBOM付きのUTF-8で作るとエラーになるので、Shift_JISとかで作っとくのが無難です。

  11. セキュリティ対策(3)

    C:\xampp\phpMyAdmin\config.inc.phpの68行目の値configを、httpcookieに変更。 phpMyAdminにアクセスした時にユーザ名とパスワードを聞かれるようになる。ユーザ名はroot、パスワードはStep9で設定したもの。

  12. MTをインストール
    C:\xampp\htdocsmtフォルダを作り、MTのファイルをコピー。 http://localhost/mt/でアクセスしてみる。 http://localhost/mt/mt-check.cgiを実行し、一番下の方に「準備が整いました(略)」と出ていればOK。
  13. http://localhost/mt/mt.cgiにアクセスするとMTの設定ウィザードになる。 (C:\xampp\htdocs\mt\mt-config.cgiをいじってもいいけど、こっちのが簡単)
    1. ステップ1/3

      見つからないパッケージが一覧で出てくるが、今回は無視。使うならお好みで調べてみてくださいー。

      • Image::Magick → 今回は無視。使うならお好みでー。
      • Crypt::DSA → 今回は無視。使うならお好みでー。
      • DB_File → Berkley DBを使わないので必要ない。
      • DBIとDBD::Pg → PostgreSQLを使わないので必要ない。
    2. ステップ2/3

      データベース → 「MySQL Database」

      • データベース名 → movabletype
      • ログイン名 → root
      • パスワード → セキュリティ対策(1)か(3)で設定したパスワード。未設定なら空白。
      • データベースサーバー → localhost
      • データベースのポート → 空白
      • データベースのソケット → 空白

      「接続のテスト」ボタンを押す → 「データベース設定を完了しました。次へボタンをクリックしてメールの設定をしてください。」と出たら「次へ」

    3. ステップ3/3

      ここではしません。「次へ」。これで「mt-config.cgi」が生成される。

    「Movable Type Publishing Platform 3.35の構成が終了しました。」と出る。「インストール」ボタンを押す。
  14. あとはレンタルサーバーなどにインストールするのと同じように、ログイン名とかの設定をフツーにしていけばOK。

Continue reading

アーカイブ一覧をJavaScriptで書き出すMTテンプレート

エントリーを新規投稿する度に、全てのページにあるアーカイブ一覧やタグクラウドをいちいち再構築させるのはだるい、と思い JavaScript で書き出すことにしました。SSI や PHP でやった方がスマートだと思いますが、サーバーサイドはいまいちよく分からないので・・・という軟弱な理由で今回は不採用。

MT テンプレートにして自動更新されるようにしたので、せっかくだからテンプレートを公開してみます。恥ずかしいくらいシンプルなシロモノですけれども。

アーカイブ一覧を書き出す JavaScript のテンプレート(txt形式)

「月別アーカイブ」・「カテゴリーアーカイブ」・「直近の10記事」・「タグクラウド」を書き出す命令を function に突っ込んでいるだけです。書き出す XHTML も各項目が li 要素でマークアップされているだけのシンプルなリストです。実際にこのサイトでテンプレートから構築された後の JavaScript はこうなっています(他のスクリプトも多少混在してますが)。

XHTML 側では下記のように関数を呼んであげればいいだけ。

<script type="text/javascript">
recentEntries();
categoryArchives();
tagCloud();
monthlyArchives();
</script>

ただし、当然 JavaScript が無効な環境ではなんにも表示されなくなりますのでご注意を。JS オフな環境を考慮して、トップページのみはこの方式のインクルードを採用せず、普通に XHTML で書いてます。また JS オフだとその旨を通知するメッセージが出るようにしました。いずれも 2xup さんのアイデアを参考にさせていただきました。でも 2xup さんのスクリプトの方が100倍はカッコいいので、間違っても比較しないように。。

またデメリットとして、動的に書き出すコンテンツは静的なコンテンツより一般的に SEO が弱いと言われている点ですね。だから内部リンクは弱くなるのではないかなぁとか思います。施策したばかりなので、Google ウェブマスターツールなどで見ても、まだその影響は現れていないようですが。