WordPressを使っていてサイトを最新のテーマに乗せ換えたいといった移管作業を行う場合があります。
ここではLolipopのWordPress簡単引っ越し機能を使って、既存のWordPressサイトを別のディレクトリに移管する方法についてまとめています。
【追記】
私は元々Lolipopで運用していたのですが、数年間運用することでLolipopの重大な問題が発覚したために、いろいろと調べて、Xserverに移管することにしました。
移管に至った経緯や、XserverとConoha Wingの比較などについては下記をご参考ください。Xserverの料金が1万円引きになるリンクも紹介しています(私の場合これが最終的な決め手でした)
データは無くなる?
簡単引っ越しを行うことでデータがなくなることはありません。
前のデータはそのままで、新規ディレクトリと新規データベースにデータを移管します。
いきなり公開済みになる?
移管したサイトはいきなり公開済みになります。
元のサイトもそのまま残っているため、2つのサイトが公開状態となります。
なので、公開後は以下の処理をする必要があります。
- 独自SSL証明書の発行(SSL化)
- 元のサイトを新サイトへリダイレクトする
- 一定期間経過後に元のサイトを削除する
2の処理はSEOの観点かつ、ユーザービリティの観点です。
SEOのページランクの引継ぎなどが必要ない場合は2の転送処理をスキップして、元のサイトを削除してしまって大丈夫です。
注意点
特に、以下に該当する場合は引っ越し機能を利用することはできません。
- マルチサイト機能を使用している
- DBが1GBを超えている
- WordPress.comで運用している
- PHPからファイルを圧縮するツールが利用できない
上記要件に該当しないうえで、下記要件を満たす必要があります。
- インストール先のディレクトリに同じ名前のファイルが存在する場合は上書きします。(データのバックアップがお勧め)
- 新規DBを1つ追加するため、DBの上限に空きが必要(プラント利用状況の確認)
- 引越し元のWordPressのバージョンが4.0以上
- 引越し元サイトのPHPのバージョンが5.3以上
- 引越し元サイトのWordPressのバージョンの動作環境に、ロリポップで利用しているPHPのバージョンが含まれていること
- セキュリティ系のプラグインを無効化する(SiteGuard WP)など
- リダイレクト設定(httpからhttpsなど)による転送処理がないこと(ある場合は無効化する)
引っ越し対象となるデータ、ならないデータ
簡単引っ越しをしても、すべてのデータが移管対象となるわけではありません。
引っ越し対象となるデータ
- WordPressのデータベース内のデータ
- wp-contentディレクトリ以下のデータ(バックアップ系プラグインのデータを除く)
引っ越し対象とならないデータ
- 引っ越し元の.htaccess ファイル
- wp-contentディレクトリ以下のバックアップ系のプラグインのデータ
- wp-content以外のデータ
なお、引っ越し前のwp-contentディレクトリは以下のようになっています。

マイナーバージョンが最新になる
また、移管が成功した後にWordPressのマイナーバージョンは自動で最新となる点にも注意が必要です。
例えば、引っ越し元サイトで 6.6.2 を使用している場合、引っ越し後は 6.6 系の最新バージョンになります。
マイナーバージョンのアップデートなので特に問題はないと思いますが、いちよ頭にいれておきましょう。
引っ越し前の状態
ルートディレクトリの状態
引っ越し前のディレクトリの状態は以下のようになっています。

.htaccessの状態
#http->https
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
#SITEGUARD_PLUGIN_SETTINGS_START
#SITEGUARD_PLUGIN_SETTINGS_END
# BEGIN WordPress
# "BEGIN WordPress" から "END WordPress" までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
php_value post_max_size 64M
php_value memory_limit 128M
php_value max_input_vars 2000
php_value upload_max_filesize 32M
WordPress簡単引っ越しの流れ
実際に行う手順は以下のような流れになっています。
- セキュリティ系のプラグインを無効化する
- .htaccessにリダイレクト設定がある場合は無効化する
- 簡単引っ越しを実行
- 独自SSL証明書の発行(SSL化)
- 元のサイトを新サイトへリダイレクトする
- 一定期間経過後に元のサイトを削除する
セキュリティ系のプラグインを無効化する(SiteGuard WP)
初めに、大本のサイトにセキュリティ系のプラグインが導入されている場合は無効化します。
今回の場合、SiteGuard WPが入っているのでこれを無効化します。

↓ 無効化

.htaccessにリダイレクト設定がある場合は無効化する
.htaccessにリダイレクト設定がある場合は無効化します。
今回の場合、以下のようなhttpからhttpsへの転送設定が記述されていました。
#http->https
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
↓ 無効化
#http->https
#<IfModule mod_rewrite.c>
# RewriteEngine On
# RewriteCond %{HTTPS} off
# RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
#</IfModule>
ログイン情報とディレクトリの入力
続いて、引っ越し元となるWordPressのURLやログイン情報と、引っ越し先のディレクトリを入力します。

無事に引っ越し作業が完了しました。
ブラウザで新しいURLを入力すると、これまでと全く同じページが表示されます。

以上で完了です。
エラーが発生する場合の対処法
どうしてもエラーが発生する場合は以下の記事をご参考ください。
【WordPress】lolipop簡単引っ越しでエラーが発生したときの対処法(ユーザー名/パスワードが間違っていないか確認の上、再度実行してください。引っ越し先のフォルダの パーミッション)