2008/02/09
メールアドレス変更のご連絡
プロバイダのサービス終了に伴い、これまで代表で使っていた
メールアドレスが使用できなくなりました。
各種ソフトウエアのドキュメントに書いてあるアドレスでは
今後メールが届かなくなりますのでどうぞご了承ください。
webページに掲載してある方は修正いたしました。
またフォームからの送信もこれまでどおり大丈夫です。
10年以上使ってきたメールサービスでした。
ご迷惑をおかけいたします。
よろしくお願いします。
メールアドレスが使用できなくなりました。
各種ソフトウエアのドキュメントに書いてあるアドレスでは
今後メールが届かなくなりますのでどうぞご了承ください。
webページに掲載してある方は修正いたしました。
またフォームからの送信もこれまでどおり大丈夫です。
10年以上使ってきたメールサービスでした。
ご迷惑をおかけいたします。
よろしくお願いします。
2007/08/15
Nucleus blog サーバー移行メモ (2)
サーバー移行時のメモ、前日のエントリの続きです。
・blog サーバー移行メモ
チャンネル北国tv から Nucleus へ blog データの変換を行いました。
同じシステムを使っている他の地域系blogでも、おそらく変換可能だと
思います。
先日の NP_ImpExp の改造で、データ自体は問題なくインポート
できるようになりました。
●参照リンクの解決
次に少々気になるのは、自分自身の blog へのリンク、つまり過去記事を
参照している部分です。当然ですが、そのままだと移転前のページに
飛んでしまいます。
元の blog では、記事固有ページの URL は特に法則性のない名前に
なっていました。たぶん記事の管理番号か何かがそのままページ名に
なっているのだと思われます。
なので、export された MT形式のデータだけみてもどの URL がどの
データに対応していたのかわかりません。
問題はもう1つあります。Nucleus は個別の記事を itemid で区別して
おり、記事固有ページもこの item 番号が割り振られます。ところが
どの番号が割り振られるのかは、実際にデータをインポートしてみるまで
わかりません。
実験で何度も削除やインポートを繰り返しましたが、itemid は
インポートするたびに別に値になってしまいます。
問題点まとめ
・MT形式のデータでは、自分自身への参照リンクがわからない。
参照している元の URL と、記事の対応付けが必要。
・Nucleus で個別記事を識別する番号は Import してみるまでわから
ない。事前のツールで対応付けを静的に解決するのは難しい。
(読み込んだ後の plug-in ならできる?)
そこで、記事個別に対する参照リンクをあきらめて、日付ごとの
アーカイブへのリンクに置き換えることにしました。
もともと1日に1記事程度のペースだったし、これなら事前に URL
も求まるし、何度も Import/Export を繰り返しても大丈夫です。
Nucleus の場合、日付によるアーカイブの URL は
こんな感じになります。
最初はリンク先の置き換えを手で修正してみましたが・・8月分だけで
断念。そこで、
1. 自分の blog への参照リンク URL 抽出
2. その URL へアクセスしてページデータダウンロード
3. ページデータ内から日付情報の切り出し
4. 切り出した日付から、新 blog 用のアーカイブページの URL を求めて置換
こんなスクリプトを書いて一気に置換してみました。
●画像リンクの置換
参照リンクと同じように、埋め込まれている画像の参照も変換する必要が
あります。これは参照リンクに比べたら非常に簡単なので、スクリプトで
単純にパスを置き換えました。
注意点はサーバー側で自動生成されたサムネイルを見ている可能性がある
ことです。変換時に再び生成しなおすか、または移転元から引っ張ってくる
方法もあるかと思います。
この blog ではもともと画像は少ないし容量も小さいので、今回はないも
せずに縮小前の画像へのリンクに置き換えてしまいました。
●チャンネル北国tv から Nucleus への移行手順のまとめ
・MT形式で Export
・自分への参照リンク URL の置換
・画像参照パスの置換
・Nucleus を設置して設定
・Import 前に先に NP_TrackBack Plug-in を入れておく必要あり
・修正版のプラグイン NP_ImpExp を install
・NP_ImpExp で読み込み
・移行する画像データは別手段で用意しておき media/1 にアップロード
つい、いつものくせで投稿前にタイトルの文字数を数えてしまいました。
チャンネル北国tv のシステムでは、タイトル文字数が unicode 換算で
32文字までと制限があったからです。
もし逆に Nucleus から チャンネル北国tv 変換する場合は、この
タイトル文字数の対策が必要になるでしょう。
・blog サーバー移行メモ
チャンネル北国tv から Nucleus へ blog データの変換を行いました。
同じシステムを使っている他の地域系blogでも、おそらく変換可能だと
思います。
先日の NP_ImpExp の改造で、データ自体は問題なくインポート
できるようになりました。
●参照リンクの解決
次に少々気になるのは、自分自身の blog へのリンク、つまり過去記事を
参照している部分です。当然ですが、そのままだと移転前のページに
飛んでしまいます。
元の blog では、記事固有ページの URL は特に法則性のない名前に
なっていました。たぶん記事の管理番号か何かがそのままページ名に
なっているのだと思われます。
なので、export された MT形式のデータだけみてもどの URL がどの
データに対応していたのかわかりません。
問題はもう1つあります。Nucleus は個別の記事を itemid で区別して
おり、記事固有ページもこの item 番号が割り振られます。ところが
どの番号が割り振られるのかは、実際にデータをインポートしてみるまで
わかりません。
実験で何度も削除やインポートを繰り返しましたが、itemid は
インポートするたびに別に値になってしまいます。
問題点まとめ
・MT形式のデータでは、自分自身への参照リンクがわからない。
参照している元の URL と、記事の対応付けが必要。
・Nucleus で個別記事を識別する番号は Import してみるまでわから
ない。事前のツールで対応付けを静的に解決するのは難しい。
(読み込んだ後の plug-in ならできる?)
そこで、記事個別に対する参照リンクをあきらめて、日付ごとの
アーカイブへのリンクに置き換えることにしました。
もともと1日に1記事程度のペースだったし、これなら事前に URL
も求まるし、何度も Import/Export を繰り返しても大丈夫です。
Nucleus の場合、日付によるアーカイブの URL は
http://wlog.flatlib.jp/archive/1/2007-8-12
こんな感じになります。
最初はリンク先の置き換えを手で修正してみましたが・・8月分だけで
断念。そこで、
1. 自分の blog への参照リンク URL 抽出
2. その URL へアクセスしてページデータダウンロード
3. ページデータ内から日付情報の切り出し
4. 切り出した日付から、新 blog 用のアーカイブページの URL を求めて置換
こんなスクリプトを書いて一気に置換してみました。
●画像リンクの置換
参照リンクと同じように、埋め込まれている画像の参照も変換する必要が
あります。これは参照リンクに比べたら非常に簡単なので、スクリプトで
単純にパスを置き換えました。
注意点はサーバー側で自動生成されたサムネイルを見ている可能性がある
ことです。変換時に再び生成しなおすか、または移転元から引っ張ってくる
方法もあるかと思います。
この blog ではもともと画像は少ないし容量も小さいので、今回はないも
せずに縮小前の画像へのリンクに置き換えてしまいました。
●チャンネル北国tv から Nucleus への移行手順のまとめ
・MT形式で Export
・自分への参照リンク URL の置換
・画像参照パスの置換
・Nucleus を設置して設定
・Import 前に先に NP_TrackBack Plug-in を入れておく必要あり
・修正版のプラグイン NP_ImpExp を install
・NP_ImpExp で読み込み
・移行する画像データは別手段で用意しておき media/1 にアップロード
つい、いつものくせで投稿前にタイトルの文字数を数えてしまいました。
チャンネル北国tv のシステムでは、タイトル文字数が unicode 換算で
32文字までと制限があったからです。
もし逆に Nucleus から チャンネル北国tv 変換する場合は、この
タイトル文字数の対策が必要になるでしょう。
2007/08/14
blog サーバー移行メモ
blog データの引越しを行いました。
そのときの作業メモです。
●MT形式での出力
移転前の blog で対応している入出力フォーマットは MT形式と呼ばれるもの
でした。MT形式のインポートとエクスポートはほとんどの blog でサポート
しており、事実上標準となっているようです。
中身は階層を持たないプレーンテキストで、ツールやスクリプトでも比較容易に
扱うことができます。
各記事の内容や日付などの情報、コメントやトラックバックの情報も含まれています。
●MT形式での入力
Nucleus はプラグインを使うことで MT 形式の読み込みができます。
下記の NP_ImpExp を使用しました。
・NP_ImpExp
ただ移転前の blog のデータをそのまま読み込むと、かなり行が詰まった画面と
なりうまく再現されていません。サイトやもとのデータに起因する問題だとは
思いますが、空行が失われてしまうようです。
WordPress ではきれいに読み込めていたので、少々原因を調べました。
NP_ImpExp の
plugins/sharedlibs/cles/MTFileParser.php
の最後、parseTextSection() を下記のように修正しました。(+の削除)
これで空行もそのまま読み込めるようになりました。
●TrackBack
インポート時のログを見るといくつかエラーがでていました。トラックバック
のデータでした。Nucleus は標準で TrackBack に対応していないので、
インポート前に下記の Plugin が必要です。
・NP_TrackBack
これできちんと読み込めるようになります。
何度もインポートと全データ削除を繰り返していると、TrackBack のデータ
だけが重複して何個も残ってしまうことがありました。
消すときは、item データ削除前に TrackBack のデータも全部消しておいた方が
よさそうです。
●カテゴリの違い
次の問題はカテゴリの分類です。NP_InpExp では読み込む前に、元の blog と
同じカテゴリをあらかじめ追加しておく必要があります。
それでもきちんと読み込めているものもあれば、分類情報が失われてしまう
ものもありました。
NP_ImpExp は標準で PRIMARY CATEGORY を優先し、なければ CATEGORY を
参照しています。元の blog のデータは CATEGORY に情報が入っていたので、
読み込み時に無理やり CATEGORY を参照するように書き換えました。
NP_ImpExp.php importEntry() の先頭に下記の行を追加。
●コメントとトラックバックの時刻
読み込んだデータのコメントとトラックバックだけ、日付がリセット(0=1970年)
されてしまう問題が発生しました。
いろいろ調べたところ、DB に渡す日付が '/' スラッシュ区切りになっていた
のが原因でした。これを '-' ハイフン区切りにしたところ、日付も正しく
読み込まれるようになりました。
NP_ImpExp.php importPing() と importComment() の2箇所あります。
下記のように変更しました。
このとき試していたのは SQLite 版だったので、もしかしたら MySQL では
スラッシュでも問題ないのかもしれません。マニュアル上はハイフンの方が
正しい形式のようです。
そのときの作業メモです。
●MT形式での出力
移転前の blog で対応している入出力フォーマットは MT形式と呼ばれるもの
でした。MT形式のインポートとエクスポートはほとんどの blog でサポート
しており、事実上標準となっているようです。
中身は階層を持たないプレーンテキストで、ツールやスクリプトでも比較容易に
扱うことができます。
各記事の内容や日付などの情報、コメントやトラックバックの情報も含まれています。
●MT形式での入力
Nucleus はプラグインを使うことで MT 形式の読み込みができます。
下記の NP_ImpExp を使用しました。
・NP_ImpExp
ただ移転前の blog のデータをそのまま読み込むと、かなり行が詰まった画面と
なりうまく再現されていません。サイトやもとのデータに起因する問題だとは
思いますが、空行が失われてしまうようです。
WordPress ではきれいに読み込めていたので、少々原因を調べました。
NP_ImpExp の
plugins/sharedlibs/cles/MTFileParser.php
の最後、parseTextSection() を下記のように修正しました。(+の削除)
$lines = preg_split("/(\r?\n)+/", $comment); ↓ $lines = preg_split("/(\r?\n)/", $comment);
これで空行もそのまま読み込めるようになりました。
●TrackBack
インポート時のログを見るといくつかエラーがでていました。トラックバック
のデータでした。Nucleus は標準で TrackBack に対応していないので、
インポート前に下記の Plugin が必要です。
・NP_TrackBack
これできちんと読み込めるようになります。
何度もインポートと全データ削除を繰り返していると、TrackBack のデータ
だけが重複して何個も残ってしまうことがありました。
消すときは、item データ削除前に TrackBack のデータも全部消しておいた方が
よさそうです。
●カテゴリの違い
次の問題はカテゴリの分類です。NP_InpExp では読み込む前に、元の blog と
同じカテゴリをあらかじめ追加しておく必要があります。
それでもきちんと読み込めているものもあれば、分類情報が失われてしまう
ものもありました。
NP_ImpExp は標準で PRIMARY CATEGORY を優先し、なければ CATEGORY を
参照しています。元の blog のデータは CATEGORY に情報が入っていたので、
読み込み時に無理やり CATEGORY を参照するように書き換えました。
NP_ImpExp.php importEntry() の先頭に下記の行を追加。
$entry['PRIMARY CATEGORY'] = $entry['CATEGORY'];
●コメントとトラックバックの時刻
読み込んだデータのコメントとトラックバックだけ、日付がリセット(0=1970年)
されてしまう問題が発生しました。
いろいろ調べたところ、DB に渡す日付が '/' スラッシュ区切りになっていた
のが原因でした。これを '-' ハイフン区切りにしたところ、日付も正しく
読み込まれるようになりました。
NP_ImpExp.php importPing() と importComment() の2箇所あります。
下記のように変更しました。
$timestamp = date("Y/m/d H:i:s", $timestamp); ↓ $timestamp = date("Y-m-d H:i:s", $timestamp);
このとき試していたのは SQLite 版だったので、もしかしたら MySQL では
スラッシュでも問題ないのかもしれません。マニュアル上はハイフンの方が
正しい形式のようです。
|