WordPressには2種類あるのはご存じでしょうか?
この記事では、Wordpress.comの独自ドメイン+有料プランからWordrepss.orgに移転した時の話をまとめています。
この記事を読むことで、Wordpress.comからWordpress.orgに移転する際に発生するトラブルや注意点などを理解することができるでしょう。
WordPress.comとWordpress.orgの違い
レンタルサーバーを借りてWordpressをインストールするタイプがWordPress.orgです。こちらが一般的でしょう。
一方、WordPress.comは、日本のレンタルブログサービスのような感じで、Wordpressが使えるシステムを契約してレンタルするサービスです。
よくわからずにWordpress.orgがWordpress.comだと思って契約してしまう人は多いようです。ある程度使って慣れてくると、Wordpress.comに搾取されていることに気が付いて、レンタルサーバーを借りてwordpress.orgに移りたいと思う人は多いようです。
WordPress.comはランニングコストが高いサービス
WordPress.comは無料から使えます。しかし、無料プランだとブログ機能しか使えません。
WordPress.orgと同じようにプラグインやテーマを自由にインストールしたい場合は独自ドメインと有料プランが必要になります。
独自ドメインをwordpress.comで取得するとドメイン維持費も他のレジストラよりも高額ですし、サービス利用料も通常のレンタルサーバーの月額料金よりも高いです。
Xserverを借りてドメイン移管した方がランニングコストは下げられるでしょう。
WordPress.comからWordpress.orgへのサーバー移転はできるのか?
WordPress.comからWordpress.orgへのサイト移転は検索すると沢山引っかかります。
検索して出てくるのはWordpress.comの無料プランからの引っ越しばかり
WordPress.comが正式にサポートしている方法でもあるのですが、エクスポートツールを使っての移転です。
エクスポートしたデータには投稿や固定ページの内容しか含まれていません。画像はエクスポートできないの?と思うかもしれませんが、インポート先で移転元から自動的に取り込むことになっています。画像を取り込むためには、移転元と移転先が同時に公開されていないといけません。
独自ドメインの場合は、移転前後で同じドメイン名になると思いますので、エクスポートツールを使うと、移転元から画像が取り込めないことになります。
エクスポートツールは、テーマやプラグインの設定はエクスポートできない
なぜか有料プランからWordpress.orgへの移転の話は見かけない
WordPress.comの有料プランではプラグインが使えます。プラグインが使えるならAll in One Migraitonなどのサイト移転プラグインを使えば簡単に移転できるはずです。
しかし、そのような事例は見かけたことがなく、検索しても出てこないのでとても不安になります。
簡単だから検索しても出てこないのか?それともそもそも出来ないから出てこないのか?
WordPress.comの有料プランからサーバー移転すると案の定トラブった
実際に、Wordpress.comの有料プランからサイト移転のプラグインを使って移転してみました。
その結果、案の定というかトラブルにあいました。
All in one migrationを使ったサイト移転の結果
- All in one migraitonでエクスポート〇
- All in one migraitonで移転先でインポート〇
- インポートしたサイトは文字化け✖
Updraft plusを使ったサイト移転の結果
- Updraft plusでバックアップ〇
- Updraft plusでリストア△(文字コードのワーニングが出る)
- インポートしたサイトは文字化け✖
- サムネイルなどの画像が表示されない✖
移転先で文字化けするのはDBの文字コードの違いが原因
WordPress.comはDBのダンプでテーブル作成時の文字コードの指定がlaten1になっている
これが原因で日本語が文字化けしてしまう。
しかし、これは変えられないので、ダンプした後に対処しなければならない。
Updraft Plusの方が小回りが利く
DBをダンプして直接書き換えるためにUpdraft plusを使う必要がある。Updraft plusはバックアップファイルが細かく分かれており、DBファイルのダンプファイルがそのまま出てくる。
DBのダンプファイルのlaten1をUTF8に書き換える
編集するので、gz圧縮を解凍する。
WordPress.comはDBの文字コードがlaten1に設定されている(データの文字コードはUTFだが、テーブル作成時の文字コードがlaten1になっている)ので、dbダンプファイルを直接書き換える。
CREATE TABLE `wp_options` (
`option_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`option_name` varchar(191) NOT NULL DEFAULT '',
`option_value` longtext NOT NULL,
`autoload` varchar(20) NOT NULL DEFAULT 'yes',
PRIMARY KEY (`option_id`),
UNIQUE KEY `option_name` (`option_name`),
KEY `autoload` (`autoload`)
) ENGINE=InnoDB AUTO_INCREMENT=22595 DEFAULT CHARSET=laten1;
↓に変更(25か所ぐらいある)
CREATE TABLE `wp_options` (
`option_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`option_name` varchar(191) NOT NULL DEFAULT '',
`option_value` longtext NOT NULL,
`autoload` varchar(20) NOT NULL DEFAULT 'yes',
PRIMARY KEY (`option_id`),
UNIQUE KEY `option_name` (`option_name`),
KEY `autoload` (`autoload`)
) ENGINE=InnoDB AUTO_INCREMENT=22595 DEFAULT CHARSET=utf8_general_ci;
その後、gzに再度圧縮
UpdraftでDBだけ復元
UpdraftでDBだけ復元すると、読み込み時に、文字コードの指定を聞かれるのでUTF8にする。
そうすると無事に文字化けは解消される。
結局原因は、DBダンプファイルは文字化けしていないのに、CREATE TABLEで作られる入れ物がlaten1だから文字化けする。
サムネイル画像が移転先で作られていない
sourceなどでレスポンシブ対応になっている記述が参照先がなくて画像が表示されない現象が起きた。
ファイルはあるのに、サムネイル画像が無いだけのようだった。
regenerate thumbnailでサムネイルを作り直せばOK
regenerate thumbnailで作り直せば表示されるようになる。
プラグインで作成するサムネイル画像のサイズの指定ができる。あらかじめチェックされている項目だけだと足りない場合は、全部画像サイズをチェックすればとりあえず問題ない。
まとめ
WordPress.comから移転する時はDBのCREATE TABLEの文字コードが原因で文字化けが起きる。それを修正するにはDBをダンプして直接書き換えるしかない。
そのためには、All in One migrationのような移転ツールだと書き換えられないので、Updraft plusのようなDBだけダンプできるツールが必要になる。