9月 2004のアーカイブ
Google Web APIs service (ベータ版) を文字化けさせないでMTで利用する方法
フリー (ベータ版) の Google Web APIs license key を Google Web APIs service サイトから入手して、Movable Type内で設定すると、TEMPLATE TAGS 【MTGoogleSearch】をindex.htmlなどで使用することができます。
テンプレートタグ【MTGoogleSearch】
<MTGoogleSearch query=”movable type” results=”5“>
<a href=”<$MTGoogleSearchResult property=”URL“$>”><$MTGoogleSearchResult property=”title“$></a><br />
</MTGoogleSearch>
タグの機能:キーワード「movable type」をGoogle検索し、URLのタイトルページ名トップ5を表示します。
注:サーバーの条件として LWP::UserAgent SOAP::Lite (version 0.50以上) がインストールされていなければなりません( Xrea.com さんのサーバはインストール済)。
index.html内に本タグを挿入すると、文字化けという重大な不具合が発生します。ブラウザの表示 (エンコード言語)を変更しても、文字化けが修正されず意味不明のページとなることがあります。
インストールするMovable Type:【日本語版】【英語bug fix版】
エンコードの種類:【EUC-JP】 【UTF-8】
DBの種類:【Berkeley】【MySQL】【PostgreSQL】
インストール時の設定を変更しても、表示されるURLに日本語などが含まれると、ページ全体(ないし、URLのタイトル名)が文字化けします。
解決方法 (根本的解決法ではありません) :
■ GoogleSearch専用のインデックス・テンプレートを新規作成する。
但し, Movable Type3.01D+DB【PostgreSQL】では作成時エラーとなります。 MT 3.11日本語版では作成できます(Xrea.comさんのサーバ)
■ GoogleSearch専用htmlページへのリンクを index.html内に作成します。
GoogleSearch専用のインデックス・テンプレート
テンプレートの名前⇒ (仮) Google Index
出力ファイル名 ⇒ (仮) google.html
テンプレートの雛型として「Master Archive Index」を使用し、メタタグ
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8” />
のcharset を上記のように utf-8 ないし unicode に変更する。
TEMPLATE TAGS 【MTGoogleSearch】
http://www.movabletype.org/docs/mtmanual_tags.html#miscellaneous%20tags
をコピー・ペースト後、編集します。また、Google Index全体の編集を行います。
サンプルページ⇒ http://www.osbsd.net/google.html
インデックス・テンプレート 出力ファイル名 index.html
リンクなどで google.htmlを表示するように編集します。
<a href=”./google.html” target=”explain”>ここにリンク名を記述</a><br />
再構築後、トップページ、google.htmlを確認します。
ダイナミック (PHP) ページのための設定について
ダイナミック(PHP)ページは、htaccessファイル(ドットファイル)をアップロードするだけで、自動生成します(Xrea.com さんのサーバ)。
詳しくは、過去のエントリー
http://shellscript.biz/archives/000020.html
をご覧下さい。
なお、
■ Movable Type 3.1リリースでは DBとしてMySQLのみ利用できます。
■1つのWWWサーバ上に複数のブログページを作成するとき、複数のhtaccessファイル (別ディレクトリー内)が必要です。
Movable Typeでは Unicode (UTF-8) or EUC-JP (日本語 Extended Unix Code) ?
[追加 2005/7/11]
エントリー「PostgreSQL と UNICODE」
http://shellscript.biz/archives/000063.html
をご覧下さい。
Movable Type の利用に際して、データベースとしてMySQL (および、PostgreSQL)、スクリプト言語としてPHPも使用するので、文字化けや文字検索で問題を起すShift_JIS コード(META要素で記述)は当初から使用していません。以前からサーバーはUnix系 (ないし、Linux) なので、これまではトラブルの最も少ないEUC-JPを採用していました。ところが、RSS/Atom 対応のMovable Typeを最大限活用するとき、文字コードEUC-JPでは、エントリーの記述内容次第で、再構築後にRSS、Atomに対応しなくなることがあり、問題です。
RSS / Atom / OPML Reader(例)⇒ http://www.infomaker.jp/rss-opml.htm
ブログページ開設時だけでなく、RSSリーダーで更新不能となったとき、RSSやAtomに対応しなくなった理由を、たとえば、サイト「FEED Validator for Atom and RSS」
http://feedvalidator.org/
でチェック (Validity) します。
文字コードが原因のことが多いと思いますが、今回、テンプレート【RSS 1.0 Index】の ファイル名 index.rdf を Movable Type 3.11 bugfix英語版にすべて変更することで解決しました。
15行目の
<dc:language><$MTDefaultLanguage$></dc:language>
<dc:creator></dc:creator>
の言語コード指定の一行をコメントアウト
<!–dc:language–><!–$MTDefaultLanguage$–><!–/dc:language–>
<dc:creator></dc:creator>
ないし、削除後確認する簡便な方法もありますが、テンプレート全体の変更も可能でした(Movable Type 3.01日本語版に複写)。
しかし、UTF-8のUnicodeを使用していないため Atom 対応が得られないとわかったとき、
(エラーメッセージの一例)
‘euc-jp’ codec can’t decode byte 0xad in position ***: illegal multibyte sequence (maybe a high-bit character?) [help]
エントリー内のマルチバイト文字すべてに注意を払うことになりますので、かなり厄介です。以前から XMLとは相性が悪いとされた マルチバイトの ‘curly quote’ や ‘curly apostrophe’ は、コピー・ペーストでエントリを作成したとき、特に注意が必要のようです(特殊文字ではキーボード上の文字を直接使用しない)。
同義語:smart quotes, curly quotes, curled quotes, curling quotes, curved quotes
http://www.dwheeler.com/essays/quotes-in-html.html
Left Double Quotation Mark “ ⇒“
Right Double Quotation Mark ” ⇒”
Left Single Quotation Mark ‘ ⇒‘
Right Single Quotation Mark ’ ⇒’
UTF-8などのUnicodeは、現時点ではUnix系、Windows, Macなどのプラットフォームでの対応は若干遅れていますが、今後標準の文字コードに採用されるとの情報もありますので、Movable Typeの新規インストール時には積極的に利用すべきと考えます。
【2004/9/22現在】
Xrea.comさんのサーバー (Movable Type, DB, PublishCharset について)
使用可能なDB
○DB_File(Berkeley DB) (Unicode【UTF-8】使用可 注:MT3.11新機能 ダイナミックページは対応しません)
◎DBD::mysql (Unicode【UTF-8】使用可)
◎DBD::postgres (注:Unicode【UTF-8】使用不可)
使用不可能なDB
×DBD::SQLite
EUC-JPは正常に動作しますが、Shift_JISについては動作確認しておりません。
【追記 2004/12/16】 DBD::mysql ,UTF-8使用 であっても、エントリーに
http://medqa.net/archives/atom19.html
のように記述すると、atom.xml のvalidityがなくなりました。
Movable Typeプラグイン「SubCategories 1.2」のアンインストールが先です。
David Raynes さんのプラグイン「SubCategories 1.2」はとても便利なツールで、Movable Type version 3.01D までは正常に稼働します。Movable Type 3.11以降は本体のサブカテゴリー新機能を利用すればよいので、Movable Typeアップグレード後は本プラグインは不要となります。
最新版 SubCategories 1.2 [June 21, 2004] (04/9/8現在)
ホームページ http://www.rayners.org/
圧縮ファイル名 subcats-1.2.tar.gz, subcats-1.2.zip
【注意事項】
■ プラグイン「SubCategories 1.2」は、新規インストールないしアップグレード版のMovable Type 3.11英語版では正常に稼働しませんでした。ブラウザIE にて mt.cgiにアクセスすると、「HTTP 500 – 内部サーバー エラー」となります。
【subcats-1.2.* 展開後の全ファイルとアップロード先】
ベースフォルダ内 mt-sc.cgi
pluginsフォルダ内 sub_cats.pl
/extlib/rayners フォルダ内 SubCategory.pm SubCats.pm
このうち、sub_cats.plを削除するだけで、正常作動します。
【とても重要なこと】
×「SubCategories 1.2」のファイルをすべてアンインストールしないで、MT3.01D からMT 3.11へアップグレードすると、カテゴリがすべて消失します(エントリのみ保存されます)。
◎ 全ファイルをアンインストール後に、MT 3.11へアップグレードすると、カテゴリも保存されます(すべてのエントリがトップの階層になります)。 MT 3.11へアップグレード後 plugin-to-db.cgi を実行します。
SubCategories Plugin Data Migration
http://www.rayners.org/2004/09/07/subcategories_plugin_data_migration/index.php
⇒ Important Note: When upgrading to a 3.1x version of MT, remove all of the files associated with the SubCategories plugin before starting the upgrade.
■ plugin-to-db.cgi の実行
上記ホームページから plugin-to-db.txtをダウンロードし、mt.cgiと同じベースディレクトリにアップロードし plugin-to-db.cgi とリネームし、ファイル属性を 700(Xrea.comさんのサーバー)に変更後、ブラウザから実行します。
Setting the parent of *** to category id **.
Done migrating your data! All went well.
もし、誤ってアップグレード前に実行すると、
You have not yet upgraded to the 3.0 version of MT. Please do that before you run this script. Exiting…
とエラーが表示されます。
予約投稿とcron ジョブ(シェルスクリプト)
Movable Type 3.11の新機能「予約投稿」は、サーバーのcron job で時間等を設定します。
Xrea comさんのサーバーでは、run-periodic-tasksのファイル属性は 700 で作動します。
エントリの投稿は通常どおり行い、【指定日】を選択し、保存します。
ブログページ上には、【作成日時】が表示されます(cron jobの予約時刻ではありません)。
作成日時が予約時刻より未来であると、ページ表示されません。
Movable Type 3.11英語版(Bugs fixed 09.03.2004) または、
2004年10月19日以降、シックス・アパート社「Movable Type 3.1日本語版」
Create ⇒ New Entry ⇒ 投稿の状態 Post Status【指定日 Future】⇒ 保存 Save
シェルスクリプトは以下のように作成します。
例)ユーザー名 “me” / mt.cgiのディレクトリ名 “mt”
スクリプト名 cron1.sh (サーバー仕様は cron2.sh, cron3.sh など3つのshellscriptを同時登録できます。2004年後半、計5つに増設 )
#!/bin/sh
cd /virtual/me/public_html/mt/
/usr/bin/perl ./tools/run-periodic-tasks
echo Future: MT3.11 run-periodic-tasks
echo
exit
以上
ダウンロード用スクリプト⇒ cron489_sh 2KB 使用時の拡張子は sh です。
このファイルは Movable Type 3.11英語版(ないし、日本語版) 用です。
cd /virtual/me/public_html/mt/ のPATHは必ず変更して下さい。カレントディレクトリは必ずmt.cgiのあるMovable Typeベーシックディレクトリです。
(他のディレクトリではライブラリが使用できません)
echo はサーバの自動送信メールにより正常稼動を確認する目的だけです。
# Movable Type 3.11新機能「予約投稿」のためのスクリプトです。
# シェルコマンドを実行する際、カレントディレクトリを mt.cgi のあるディレクトリに移動する必要があります。
# Xrea.com さんのサーバでは、次行の /me/public_html/mt/ のみ変更して下さい。
# me はユーザー名(ID) です。mt は mt.cgi を含むベーシックディレクトリの名称です。
# Xrea.com さんのサーバでは、run-periodic-tasksのファイル属性は 700 で作動します。
# 他社サーバでは、perlのPATHなどもご確認下さい。
# echo の行は メールで登録メールアドレスに通知されるメッセージです。
# 本スクリプトを編集したとき、改行コード LF エンコード種類 EUC で保存し、FTP ASCIIでアップロードして下さい。
# アップロード先は、ホームディレクトリのトップ (FTP では ルート /で表示されるディレクトリ内)です。
# アップロード後、ファイル属性を 705 に変更して下さい。
# スクリプトの実行等は、すべて自己責任で行って下さい。
また、Xrea.com さんの cron ジョブの設定方法、shellscriptのアップロード先は、
http://shellscript.biz/archives/000018.html
などをご覧下さい。