うろぐ

インターネットサービス&デジタル家電&デジタルカメラ&パソコンのレビュー

無料ブログとしてはとても使いやすいFC2ですが、ブログだけでなくhtmlで構成されたコンテンツ(いわゆるホームページ)を同じドメインで運営することができません。
このため、FC2からデータをダウンロードして、独自ドメインを取得・サーバを設置してから自分でインストールをしたMovable Type 4.1にデータを移転することにしました。

FC2はクリック一つで書き込んだ記事のバックアップをとれる優れた機能を持っている上に、アップロードした画像も簡単にダウンロードする事が出来ます。しかし、画像へのリンクが相対パスではなくURLで指定されているので、修正するのにそれなりの手間がかかりました。

MTを配置したサーバはCoreServerの有料プランです。
移転元のブログは
URL:http://goldenhamster.blog42.fc2.com/
移転先のブログは
URL:http://love-ham.com/blog/
です。

以下は、FC2から独自ドメインのMT 4.1にデータを移転する作業の備忘録です。

FC2からのファイルのダウンロード

FC2にログインしたら、左スクエアの中ほどの「ツール > データのバックアップ」をクリックします。
1_2

 

ダウンロード画面に移動しますので全ての記事のダウンロードボタンをクリックしてください。
3

 

ディスクに保存するにチェックを入れます。ダウンロードが開始されます。
4

 

画像のダウンロード

上記の「ツール > データのバックアップ」をクリックすると、したにスクロールをすると画像をダウンロードするボタンが現れます。100枚単位で表示されるページが現れます。ブラウザの「名前を付けて保存」から画像を一括してダウンロードします。手間がかかりそうに思えますが、約2000枚の画像で20分程度でダウンロードを終えました。
5

 

以上で、FC2からのダウンロードは完了です。

画像ファイルへのリンクが問題

FC2からダウンロードしたMTのバックアップファイルは下記のように書かれています。

AUTHOR: Gハムスター
TITLE: この船が乗船するフェリー「ふらの」
STATUS: Publish
ALLOW COMMENTS: 1
CONVERT BREAKS: default
ALLOW PINGS: 1
PRIMARY CATEGORY: ハムスターの引っ越し<北海道から栃木へフェリーで移動>
CATEGORY: ハムスターの引っ越し<北海道から栃木へフェリーで移動>

DATE: 10/29/2007 07:28:00
BODY:
<a href="http://blog-imgs-16.fc2.com/g/o/l/goldenhamster/IMGP0675.jpg" target="_blank"><img src="http://blog-imgs-16.fc2.com/g/o/l/goldenhamster/IMGP0675s.jpg" alt="フェリーふらの" border="0" /></a><br clear="all" />
2007/10/28、ハムスターと一緒にフェリーに乗船する。
利用するのはお馴染みに「ふらの」で、先々月も利用した船だ。
春から秋にかけては高かった乗船料金も、10月も終わりとなると格安となっていた。今回は乗用車、ドライバーの自分、ペットのハムと3種類の料金が必要だった。
※話の都合上、このカテゴリではブログの投稿日時を逆順に編集しています
EXTENDED BODY:

EXCERPT:

KEYWORDS:

ダウンロードしたファイルの書式はMovable Typeに準拠しています。
このファイルで問題となるのは、画像はURLでFC2のディレクトリから読み込まれていることです。例えば相対パスで書かれていれば
../../g/o/l/goldenhamster/IMGP0675.jpg
となるのでパスに合わせたディレクトリを作成して画像をアップロードすれば済むのですが、FC2のURLが書かれているので、これを独自ドメインに変更しなければなりません。
記事が約550エントリーあり、画像は約2000枚ありましたたのでcgiでプログラムを作成して、一括変換をする事も考えたのですが、開発時間と手作業でURLを変更する時間を天秤にかけて手作業で行うことにしました。
結果的には6時間ほどで作業は終了しました。

URLを変更する作業の問題点

FC2の画像ファイルは複数のサーバ上の配置されています。
例えば1ページの2枚以上の画像が有る場合、下記のようにURLが全く違っていることもあります。

http://blog-imgs-16.fc2.com/g/o/l/goldenhamster/IMG_0971.jpg
http://blog-imgs-17.fc2.com/g/o/l/goldenhamster/IMG_0317.jpg

画像ファイルの名称がアップロードした画像の名称そのままで使われています。デジタルカメラは9999枚まで撮影をすると、0001に名称が戻るので、これでは重複した画像の名称が発生する可能性があります。

サムネイルを廃止して、オリジナル画像のみを表示するようにしました。
FC2を使い始めた当初は、サムネイル画像をブログ記事に表示して、クリックをすると大きな画像が表示されるようにしていたのですが、途中からサムネイル画像を止めて、横幅300pxの1つの画像を表示するようにしました。
サムネイルから大きな画像へリンクが張れ餘テイルのですが、このリンクを削除するのは金遠くなるような作業ですので、サムネイル画像を読み込まず最初から中くらいの画像を表示するようにしました。
方法は簡単で、テキストエディタでバックアップファイルを開き、「IMG_3967s.jpg」を「IMG_3967.jpg」の「s.jpg」を「.jpg」に置き換えるだけです。リンクは残りますがブログの記事の大きな画面に表示されるのは大きな画像となります。
ダウンロードした画像ファイルから、s.jpgと書かれたファイルを手作業で削除します。
作業は以外に簡単で15分ほどで終了しました。

FC2から画像をダウンロードするには100枚単位でしかダウンロードはできません。このため18フォルダーに分かれていた画像ファイルを1つのフォルダーに移動しました。重複した画像名が有る場合には、その画像だけ別ファイルに保存するつもりでしたが、幸い重複した画像名は有りませんでした。

重複した画像名がないので、あらかじめ容易をしていた独自ドメイン内のディレクトリ「http://love-ham.com/blog/p0907」を、URLの頭の部分のhttp://blog-imgs-16.fc2.com/g/o/l/goldenhamster/に置き換えました。
下の写真はEmEditerで文字を置き換えているところです。
この作業は10分ほどで終了しました。
1
 

ファイルのMTへのインポートの試験

FC2からダウンロードした記事のファイルの文字コードはEUC-JPなのでUTF-8に変更をしてからMTにインポートします。
しかい、なぜか読み込んでくれませんでした。

FC2のファイルの形式はMTに準拠しているので読み込まないはずは無いのですが読み込んでくれません。。
書式を少しずつ変えて試行錯誤をしましたが変化が有りません。そこで思いついたのが改行コードです。EmEditerは改行コードを表示させる機能がついているので、その機能をオンにしたところ、FC2のファイルはRL、つまりWindowsの改行コードを採用していることが分かりました。MTで読み込める改行コードはL、つまりUNIXの改行コードです。
試しに3つの記事を別のテキストファイルに抜き出して改行コードをUNIXに変換してインポートをしたところ、無事に読み込まれました。

カテゴリを事前に作成する

ファイルの読み込みが成功したので、今度はカテゴリをMTに作成します。
あらかじめインポートをする側のMTにカテゴリを作ります。FC2の欠点の一つはカテゴリが1階層しか無いことでした。このため、今回、新たに作成したカテゴリは2階層にしてあります。
カテゴリをファイルから読んで、手作業でMTにカテゴリを入力して行きます。カテゴリも分類が不自然な記事は新しいかゴリを作成したりします。また、未分類の記事が以外に多くあったので、これらも適切なカテゴリに書き換えました。

カテゴリはあらかじめ2階層にしておくと、インポートの時に自動的に振り分けてくれます。事前に階層を作っておくと後からの修正が無くて楽です。

ついでに文章でおかしな所の修正や誤字脱字の訂正も行いました。

記事のインポート

全ての準備が終えましたので記事のファイルのインポートを行います。
記事数は554エントリーありました。ファイルの容量は約840KBです。ファイルをアップロードするとMTのcgiがMySQLデータベースに書き込むので多少時間がかかります。

今回は画面がフリーズしたような状態でインポートの画面が1時間ほど変わらずに表示されていました。サーバ側がタイムアウトなどをしてエラーとなったのかと心配して試しにブログ記事の一覧を見てみると無事に全ての記事がインポートされていることが分かりました。無事にインポートされたことを確認した時点でインポート画面を閉じました。

画像のアップロード

画像のアップロードはFTPを使います。
操作はホームページを作成してアップロードするのと同じです。ただ、サーバ側が非力なのでサーバエラーが頻発して10回ほど、アップロードが中断しました。約2000枚の画像を1度にアップロードするにはサーバが有る程度の能力を持っていないと難しいようです。

MTの細かな設定

画像のアップロードと記事のインポートが終了したので、あとはMTにGoogle AalyticsやGoogle AdSenseなど必要なタグをウィジットに埋め込んで作業は終了です。

感想

今回ストレスと感じたのはCoreServerの処理能力の低さです。低料金なのでやむを得ないのですが、MTのウィジットを編集したりする時に、3回に2回はサーバエラー(500番台)が返されました。有る程度以上の記事数が有るブログや、アクセス数が多いブログCoreServerには置かない方が良いでしょう。

課題

MT4.1にブログを移植したのですが、htmlで作られたサイトの方がまだ作りかけなので公開が出来ないでいます。
それと、MT4.1のカテゴリの1ページに表示でされる記事数は調整出来るのですが、1ページに20記事を表示させるようにすると、21記事以降は表示されなくなってしまいます。通常なら複数のカテゴリのページが作成されて「次のページへ」とリンクが貼られるはずなのですが、今のところそのようなリンクを貼る方法が密から凪いでいます。
やむを得ないので、カテゴリの中で最も多い記事数よりも多い数字を入力してしのいでいます。カテゴリの表示させる記事数は100に設定しています。

追記:致命的な問題点(7/30 2009)

FC2からエキスポートをした記事のファイルにはhtmlタグが書かれていません。MTは手作業でhtmlタグを書かなければなりませんので、FC2のファイルをMTのアップロードすると、文字サイズや行間が不自然となってしまいます。
そのため、手作業で500以上の記事にhtmlタグを書き足しました。この作業は当然ですが膨大な時間がかかり約20時間かかりました。

たまたまエントリー数が500台と少なかったことと、文章が少なく写真が中心のブログでしたのでこの程度の時間で済みましたが、文章が中心のブログですと、どのくらい時間をかけなければいけないのか想像を絶するものがあります。

FC2からMTへの以降は出来るだけ早い段階、記事の数が多くても100エントリーを越えるくらいで行うことが良いでしょう。それを越えると作業時間が膨大となり、途中で投げ出してしまう可能性もあります。

7月 29th, 2009

Posted In: Movable Type 4.x(MT 4.x)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です