もともと、このブログはFC2で運用していたんですが、思うところあってDigitalOceanに引っ越しました。
以下はDigitalOceanにブログを引っ越した際のメモです。
※ここで示すやり方はSEO引き継ぎや対策に関しては全く考慮していません。
前提条件
- WordPressインストール済のDigitalOceanのドロップレットを作成済み。
- ブログ用のドメインを取得済み
- ブログ用のドメインを名前解決する際、DigitalOceanのDNSサーバーを参照するようにドメイン・レジストラ側およびDigitalOcean側でDNSサーバーの設定を変更済み
移行に際し、基本的にはこちらのサイトを参考にしましたが、ところどころ自分のやりやすいように手順をアレンジしています。
移行手順
まずはFC2ブログの管理画面にログインし、ブログ記事のデータをエクスポートする。Data Backup -> All Entries -> Downloadボタンをクリック。
次に画像ファイルのエクスポート。Data Backup -> File BackupのAll files -> Open Listボタンをクリックすると画像ファイルのURL一覧を取得できる。画像ファイルのURLをリストアップして、以下の自作Bashスクリプトで画像ファイルをスクレイピングした。
#!/bin/bash
## Script to bulk download the file from URL.
## If filename duplicates, append a counter to the filename.
if [ $# -ne 1 ]; then
echo "Usage: $0 [Needs file as arg]"
exit 1
fi
URL_list=$1
if [ ! -e $URL_list ]; then
echo "$URL_list does not exist."
exit 2
fi
count=0
echo "Fetching files....."
for url in $(cat $URL_list)
do
filename=$(basename "$url")
if [ -e $filename ]; then
count=$(($count + 1))
curl -s $url -o $filename$count
else
curl -s $url -O
fi
done
echo "Complete!"
次にエクスポートしたブログ記事のデータをテキストエディタで開き、画像ファイルのリンクをWordPressの画像ファイル用フォルダを参照するように一括置換。
検索用正規表現: https?://blog-imgs-[0-9]{1,3}.fc2.com/k/i/m/kimyou973/
続いて、記事内の内部リンクをFC2の旧ドメインからWordPressの新ドメインに書き換える。(kimyou973.blog.fc2.com -> mymanfile.com)
いよいよFC2ブログ記事のデータをWordPressにインポートする。
まず以下のWordPressのプラグインをインストールする。
- Movable Type and TypePad Importer: ブログ記事インポートのためのプラグイン
- WP File Manager: ファイル操作のプラグイン
- Search Regex: 正規表現検索のプラグイン
このまま記事データをインポートすると改行が乱れる(<br><br>での改行が<br>になる)とのことなので、WP File Manager経由でMovable Type and TypePad Importerプラグインのmovabletype-importer.phpを以下のように修正する。
//if( !empty($line) )
//$line .= "\n";
$line .= "";
上記が完了したら、Movable Type and TypePad Importerを実行して、記事データをWordPressにインポートする。
インポートされた投稿のソースを確認すると、コンテンツの最後に余計なmoreタグが挿入されているので、Search Regexで削除する。
検索用正規表現: |<br>\n<!--more-->\n<br>|
記事データのインポートが完了したら、WP File Manager経由で画像ファイルをWordPress上の任意のフォルダにアップロードする。これで、記事データのインポートと画像ファイルのアップロードが完了した。
ブログ記事データのインポート後にやったこと・気がついたこと
内部リンクの修正
記事の内部リンクが新しいURLに書き換わっているため、WordPress内の新リンクに書き換える必要がある。
(/blog-entry-230.htmlのようなファイル名を対応する新しいファイル名に変更する。)
これは上手い一括変換のやり方が見つからなかったので、旧ブログ記事に対応する新ブログ記事をひとつずつ確認しながら変更した。面倒くさかった。
ソースコードのインデントが消えてしまった
自分の記事はちょいちょいプログラムやスクリプトのソースコードを貼り付けているのだが、コード内のインデントが消えてしまっていた。こちらも上手いインデントの一括挿入のやり方が見つからなかったので、ひとつずつ手動でインデントを挿入し直した。面倒くさかった。
サーバのレスポンスにApacheのバージョン情報が含まれていたので非表示にした
サーバのHTTPレスポンスを確認したところ、ヘッダーにApacheのバージョン情報が含まれていた。バージョン情報を晒しても得なことは無いので、apache2.confに下記を追記してバージョン情報を非表示にした。
ServerSignature Off
ServerTokens Prod
フッターを編集した
この記事の執筆時に利用していたフリーのテーマテンプレートはフッターに「Proudly powered by WordPress」と表示されていた。
footer.phpを編集して、「Copyright © My Man file」と表示されるように変更した。
以上。