WordPressの引っ越し手順とトラブル記録

WordPressの引っ越しをプラグインなしで実施しました。
cocoonの設定もバックアップし引っ越し先も同じ設定になりました。

引っ越し先はこちら

https://tona.tonapaso.com/

条件

今回のこのサイトは以下のプラグインを利用している状態でこれらの設定も引き継ぐことができました。(引っ越し作業はプラグインを利用していません)

  • Contact Form 7
  • Custom Post Type UI
  • Highlighting Code Block
  • Intuitive Custom Post Order
  • SiteGuard WP Plugin
  • Smart Slider 3
  • Two Factor
  • Ultimate Member
  • WP Multibyte Patch
  • Groups

手順

手順をここで掲載しますが、この手順にたどり着くまでのトラブル集も最後に書いてあります。もしトラブルを抱えている方はそちらもご覧ください。

説明書きを加えながら飽きていますが、2回目の実施などでは赤字だけをだどればできるように書いています。

準備段階

まずはバックアップ

このバックアップは引っ越しに直接関係はありません。
もしも、失敗して移行元のサイトを壊してしまった場合に備える処置です。
今回はレンタルサーバーが提供してくれているバックアップツールをそのまま利用してサイトのバックアップを取得しました。

cocoonのバックアップを取得

cocoon設定のバックアップ機能でダウンロードできます。

私の場合はデータベースお移行だけではcocoonの設定が引き継げませんでした。cocoonの設定はデータベースに記録されておりデータベースを移動することで設定が引き継がれると書かれているサイトもありましたが、私の場合は設定が悪いのかうまく引き継げませんでした。

プラグインの設定等を記録する。

後の手順でプラグインを無効化するので準備をします。

無効化する前に現在有効としているプラグインの一覧を取得します。

WordPressの設定で「プラグイン」⇒「インストール済みのプラグイン」⇒「使用中」と選択することで有効化された一覧にできますので、この有効なプラグインをスクリーンショットを取得して記録します、後でこの画像を参考にプラグインの復元を行います。

また、プラグインの中にはいったん無効化すると有効化した時にデフォルトに戻るものがあります。なので無効化前の詳細設定も記録します、これもプラグインの設定ページをスクリーンショットで記録します。Excelに画像を張り付けて保存しています。

メンテナンス表示にするコードを追加する。

WprdPressのメニューで以下の様に進みます。
[外観]⇒[テーマファイルエディター]⇒[funvtions.php]
図のコードをfunctions.phpに記載する。
このコードによりサイトにアクセスするとメンテナンス中と表示されるようになります。

function maintenance_mode() {
	if(!current_user_can('edit_themes') || !is_user_logged_in()){
		wp_die('メンテナンス中です。しばらくお待ちください。');
	}
}
add_action('get_header','maintenance_mode');

移行データの取得

プラグインの無効化

バックアップを行うにあたってプラグインが機能していると失敗する場合があるようです、特にセキュリティー関係は無効化が必須という記事もありました。何が無効化が必須なのかを調べるのも手間なのですべてのプラグインを無効化することにします。

ファイル一式をダウンロード

WordPressのファイル一式をzip形式でダウンロードします。
レンタルサーバーのFTP機能を利用してZip化してのダウンロードを行います。
サーバではなくパソコン側のFTPソフトを利用してのダウンロードがデータ量やタイムアウトの関係で利用できない場合があります。ご利用の環境でうまくいかない場合はいくつかの手法を試してみましょう。

データベースのダウンロード

続いてデータベースをダウンロードします。
サーバーが提供するSQLツールを利用してダウロードします。
いくつかの設定がありますが図の部分のみ変更しています。

データベースのダウンロードオプション

プラグインを戻す

無効化してたプラグインの復元を行います。
もしうまく引っ越しできなかった場合には旧サイトをもうしばらく利用することになることと、作業中も見に来てくれているユーザもいるため、なるべく早く復元しましょう。

メンテナンス中の解除

メンテナンス中のコードをコメントアウトして旧サイトの復元完了です。

旧サイトの復元確認

復元の確認を別のパソコンや、別のブラウザもしくはスマホなどから行いましょう。
メンテナンス用のコードのコメントアウトを忘れていたとしても、ログイン状態ではメンテナンス中の表示が行われません。


ここまでで、旧サイトからのデータ取得作業は完了です。
ここまでの作業は途中で休まず一気に片付けましょう、時間がかかった場合はここで一休み。

cocoonバックアップの編集

cocoonのバックアップファイル内にアドレスやファイル構成を示す箇所がありますのでそれらを編集します。

s:0:””;s:8:”skin_url”;s:88:”https://tona.tonapaso.com/wp-content/themes/cocoon-master/skins/skin-ganchan03/style.css”;s:17:”include_skin_type”;s:11:”parent_only”;

図にの青文字の様な部分をバックアップファイルから探してください、数か所あります。
これを移行先のファイル構成に合わせて編集してください。
また、頭のs:88の部分ですが、後に続くダブルクォーテーション内の文字数を示します。編集後に文字数を数えて数値を変更してください。

新サイトのデータベース操作

新サイト用のデータベースのアップロード

ダウンロードしていたデータベースを移行先にアップロードします。

データベースの編集

図のSQLを実行する(図に対して3点編集してください)

図は私の場合は次のSQL文で関係するアドレスを書き換えできます。

UPDATE wp_options SET option_value=REPLACE(option_value,"https://tonasapo.jp","https://tona.tonapaso.com");
UPDATE wp_options SET option_value=REPLACE(option_value,"/tonapaso/www/tonasapo.jp/","/tonapaso/www/tona.tonapaso.com/");
UPDATE wp_posts SET post_content=REPLACE(post_content,"https://tonasapo.jp","https://tona.tonapaso.com");
UPDATE wp_posts SET guid=REPLACE(guid,"https://tonasapo.jp","https://tona.tonapaso.com/");
UPDATE wp_postmeta SET meta_value=REPLACE(meta_value,"https://tonasapo.jp","https://tona.tonapaso.com");
UPDATE wp_cocoon_speech_balloons SET icon=REPLACE(icon,"https://tonasapo.jp","https://tona.tonapaso.com");
UPDATE wp_nextend2_image_storage SET image=REPLACE(image,"https://tonasapo.jp","https://tona.tonapaso.com");
UPDATE wp_nextend2_smartslider3_slides SET thumbnail=REPLACE(thumbnail,"https://tonasapo.jp","https://tona.tonapaso.com");

変更が必要なのは次の3点です。あなたのWordPressに合わせて変更してください。
・wp_:データベースお接頭語
・各行の最初の”https://…は旧のアドレスです。
・各行の後方の ”https://…は新のアドレスです。

注意

もしかするとあなたのサイトは他にも編集が必要なデータベースがあるかもしれません。
次の手順で編集が必要そうな部分を探索しましょう。
SQL文を使って検索などが難しい方は、データベースをCSVなどあなたのパソコンで読み取れる形式でダウンロードします。
ダウンロードされたファイル内で旧のアドレスやファイルの保存先などで検索して上のSQL文に含まれない元がないか探します。

移行先のファイル操作

ファイルをアップロード

ダウンロードしたZipファイルを新フォルダにアップロードし解凍します。。
パソコン側で解凍せずにダウンロードしたzipファイルをそのままアップロードします。

wp-config編集

移行先のwp-config.phpを編集します。
この変更はデータベースとの紐づけの設定です。

ファイル名:wp-config.php
ファイルの場所:WordPressをインストールしたファイル直下。
編集箇所:下のxxxxxの部分を移行先のデータベースに合わせて変更する。

// ** MySQL 設定 - こちらの情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define('DB_NAME', 'xxxxxxxxx');

/** MySQL データベースのユーザー名 */
define('DB_USER', 'xxxxxxx');

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'xxxxxxxxxxxx');

/** MySQL のホスト名 */
define('DB_HOST', 'xxxxxxx.xxx.xxx.xxxxxxxxxxx.ne.jp');

移行先のWordPress操作

新サイトへログイン

https://xxxxxxxxxx/xx/wp-admin へログインする。

新しいサイトへログインして各種設定を開始します。
プラグインが無効な状態のため標準的なログインアドレスになります。

プラグインの有効化

プラグインの有効化と設定の復元を行う

まずは無効化したプラグインを有効化していきます。準備段階で記録した有効なプラグイン一覧を見ながらすべてを同じ状態にします。

プラグインの設定復元

プラグインの設定を復元します。

cocoonのバックアップを復元

cocoonのバックアップ機能を開き編集済みのファイルを使って復元を実行します。

動作確認

ここまでの作業ですべてが引っ越し完了のはずです。
新ドメインへアクセスし完了を確認しましょう。
当たり前ですが、新サイトと旧サイトは全く同じ見た目です。いろんなリンクをクリックしリンクがつながっているだけでは安心できません。リンク先が旧のサイトになっていないかアドレスを確認していきましょう。

旧サイトの閉鎖

転送処理を追加

旧サイトを訪れた方に新サイトを案内htmlを保存するか自動転送するかの処理を入れましょう。

旧サイトの無効化

新サイトが正しく動いてそうでも、細かい部分が旧のアドレスにあるがいるを参照している場合もあります。旧サイトのファイルを削除したりなどして旧サイトの参照先を無効な状態にします。
念のため、旧サイトのバックアップが働く形で無効化しましょう(全部を消さずに、フォルダ名の変更など)

最後に動作確認をもう一度

旧サイトがなくなった状態で新サイトを再確認していきましょう。

おわり

どうでしたか、うまくいってますか?
私もこの手順で引っ越しできるようになるまで多くの壁に阻まれました。その内容をこの次からの「克服したトラブル記録」にのこします。参考になれば幸いです。

克服したトラブル記録

すんなり移行することができず、多くの壁がありました。

  • プラグインではDBが文字化け
  • cocoonの設定が継承されない
  • ファイルを属性が変化する
  • データベースの編集箇所がほかにも
  • 、、、その他、思い出したら更新する。

プラグインではDBが文字化け

プラグインのDuplicatorでバックアップを行いました。復元してサイトは動き出したものの記事の内容がすべて文字化けを起こしてしまいました。文字コードなど設定を一通り確認し疑わしい部分を変更してリトライを下のですがうまくいかずでした。
結局はデータベースの移動については手動で移動しました。
移動するだけでは旧サイトで設定されたリンクがそのまま引き継がれて今うためそれらをSQLで書き換えを実施することで移行が完了。

これではプラグインを利用した価値が半減ですね。なので、プラグインを使わないで引っ越しに挑戦しました。

解決策

結論はあきらめました、自分で全部移動する。
プラグインに頼らずい引っ越しを行うとWordPressのファイル構成など良い勉強になりました。

cocoonの設定が継承されない

ファイルとデータベースの移動(リンクアドレス当は新アドレスに更新)してもcocoonの設定が引き継がれず、スタンダートな状態でした。
cocoonのバックアップ機能を利用して旧サイトから新サイトで復元を行ったが反映されず。

解決策

cocoonのバックアップファイル内にhttps://…..のアドレスが記載されている部分があり、ここを新アドレスに編集する必要があるようです。また、アドレス部分のみではなく、その前にある”s:83”などと書かれえている数字も修正する必要がありました。
詳細は手順のところで書きます。

ファイルの属性が変化

ファイルをいったん自分のパソコンにダウンロードして編集してアップロードする。
このアップロードの時にFTPツールの設定が悪かった様でファイルが編集できない属性となった状態でアップロードされました。しかも、編集していないすべてのファイル(正確にはフォルダの属性)が管理者でも編集できない状態になりました。
その結果、WordPressの設定変更ができないかったりしました。さらに問題はそのファイルが管理者も削除できない状態になってしまいました。

解決策

ファイルのダウンロードは.zip化されてダウンロードされます。これを解凍せずにそのまま移行先のフォルダへアップロードしてサーバー内で解凍する手段を取りました。ファイルの編集もサーバーに置いたファイルを編集します。(自分のパソコンで編集してもよいですが、該当ファイルのみを編集してそれだけをアップロードすべきかと思います)

さいごに

参考になったでしょうか、私の経験としてこれらのことを書いています。もっと良い方法もあるとおもいますが、一つの成功例として参考になればうれしいです。読んでいただきありがとうございます。