【WordPress別サーバー引っ越し】SQLエクスポート/インポート&Redirectionプラグインを使った方法

      3928文字

【WordPress別サーバー引っ越し】SQLエクスポート/インポート&Redirectionプラグインを使った方法

今回は、WordPress別サーバー引っ越しについてです。管理人が以前『スターサーバーで無料WordPress使えるプランがあった』ということでテスト用にサイトを作りましたが、プラン終了がアナウンスされた模様です。サーバー引っ越しが必要になったので、サクッとやってみました。さっそく、手順を確認していきましょう。

引っ越しが必要になった経緯→無料ホスティングによくある『プランの提供終了』

引っ越しが必要になった経緯→無料ホスティングによくある『プランの提供終了』
WordPress別サーバー引っ越しが必要になった経緯は『プランの提供終了』でした。管理人がテスト用に作った『スターサーバーフリーWPプラン』のサイトですが、こちらのプランが提供終了になったということでメールが来ました。

無料ホスティングサービスには良くあることなので、こういうリスクは押さえておくと良いと思います(プランが完全終了した後はサイトが見れなくなる)。

アナウンスを読んだところ、
『2022年3月31日正午をもってプラン提供を終了・サイトへのWebアクセスを停止』
『2022年9月30日(金)正午まで、サーバーへのFTP接続・データベースのバックアップ機能が使える』

ということだったので、忘れないうちにサイトの引っ越しをしてしまいます。

WordPress別サーバー引っ越しの下準備

新たにサイトをのせるサーバーを契約し、WordPressをインストールしておく

使っていたのがスターサーバーだったので『WordPress対応・無料フリーPHP+MySQLプラン』というのがありました。しかし『フリーだけあって容量少ない』『スマートフォンなどモバイルデバイス時、8秒間の広告表示が義務付けられている』というのがあったので、他の有料プランにすることにします。

スターサーバーの他プラン(オールSSD・ただしエコノミーはデータベースが無い)でもいいし、『ヘテムル・エックスサーバー・ロリポハイスピード』あたりだと、値段の割に速度や安定性が高いと思います。

サーバーを準備したら、『簡単インストール・手動インストール』などでWordPressをインストールします。状況によっては『新しく使うサブドメイン設定や、新サーバーへのドメイン紐付け(前使っていたドメインを使う場合)』も行ってください。

画像・テーマファイルなどをダウンロード・新サーバーにアップロードしておく

画像・テーマファイルなどをダウンロード・新サーバーにアップロードしておく
あとは、旧サイトから画像をダウンロードし、新サーバーに同じパス・同じファイル名でアップロードします(/wp-content/uploads/)。記事が少ない場合は手作業でも十分対応できますが、『画像が1000枚以上』などのときは、FTPでダウンロード・アップロードが楽でした。

なお、『フォルダ名が2020とか、年・月になっている』のは、メディア設定で、『アップロードしたファイルを年月ベースのフォルダーに整理』にチェックをつけているからです。

同様にテーマもダウンロードし『/wp-content/themes/』に同じパス・同じファイル名でアップ。プラグインは管理画面から落とす感じにしました。カスタマイズを入れていなくて、設定は全部データベースに残っているからです。

phpmyadminや管理画面を使って、データベースSQLのエクスポート/新サイトインポートを行う

旧サイトからのSQLエクスポート

旧サイトからのSQLエクスポート
通常(または、管理画面からバックアップデータエクスポートができないとき)の方法です。phpmyadminを使って、SQLファイルを出力してみます。『該当のデータベースで、エクスポートタブ→フォーマットをSQL→実行』のように操作します。

管理画面からデータベースバックアップ
また、今回はスターサーバー・フリーWPとのことだったので、『管理画面からデータベースバックアップ』を使っても大丈夫です。

ローカルにSQLファイルを保存
こんな感じで、ローカルにSQLファイルを保存しておきます。全テーブルを出力したので『WPやプラグイン設定(wp_options)・ユーザー情報(wp_users)・記事情報(wp_posts)・記事メタデータ(wp_postmeta)』などが全部入ります。

新サイト・phpmyadminで、SQLインポート

新サイト・phpmyadminで、SQLインポート
次は、事前に準備しておいた、新サイトの方のデータベースを設定します。インポートタブをクリックし、先ほどローカルに落としたSQLファイルをアップします。文字セットは、utf-8になっていたので、特に変更しませんでした。

新サイト・phpmyadminで、SQLインポート
下にスクロールして、フォーマットを合わせ、実行。各種テーブル内に、旧サイトの情報が反映されました。

設定・画像/ファイルパスなどの調整について

WordPress アドレス・サイトアドレスを新サイトのurlに直す


上記の方法では旧サイト情報が全部入りますが、wp_optionsテーブル『siteurl/home』の値が、旧サイトのままです。このままでは新しいurlでサイトを見られなくなるので、新しいurlに直します。

画像・ファイル・内部リンクを新サイトurlで表示できるように

あと、気をつけたいのが『記事内の画像や音声などの添付ファイル・内部リンク』です。旧サイトが残っているうちは良いんですけど、サービス停止で旧サイトデータが消えたとき、『ファイルを旧サイトから読み込んでた』という場合は、ファイルのリンク切れや、画像が表示されない状態を起こしてしまいます。


『https://旧サイトドメイン/wp-content/uploads』の形式で記事内に入っている場合は、書き換えるか『/wp-content/uploads』の形式に直してやる必要があります。


プラグインで一括置き換えもできるんですけど(少し重い)、サクラエディタで『旧サイトのurlを検索し、空の状態に置き換える』というのをやってみました。(少しめんどくさいけど、記事をすべて確認して、ファイルリンク切れが無いかチェックする、というのも含んでいます。)


置換前の入力欄に、旧サイトのアドレス(例でこのサイトのアドレスになっています)を入れて、『すべて置換』を押します。画像が40枚くらいの記事のときは、手作業で入力するより早くておすすめです。


こんな感じで『/wp-content/uploads/〇〇』の形式になります。あとはショートカットキーでコピペ。

新サイトアドレスに対して、リダイレクトするように設定する

(一般的な方法).htaccessファイルで

パーマリンクやカテゴリ構造などもすべて同じで入ったので、ドメインの部分だけ新サイトに『Redirect permanent(301,恒久的なリダイレクト)』で飛ぶようにします。一般的には、この方法で行うことが多いと思います。

しかし、フリーWPプランでは、FTPで『テーマやアップロードファイルが入っている階層』までしか入れなかったので、ほかの方法も考えてみましょうか。

Redirectionプラグインを使って、新しいurlに転送する


リダイレクト系の動作をするプラグインと言えば『Redirection』がおなじみです。.htaccessファイルを操作しなくてもよく、パーマリンク・スラッグ変更などのルールにも対応できます。


今回は、パーマリンク・スラッグは一緒で、ドメイン部分だけが変わるので、『サイト』タブの『サイトを引っ越し』に、新サイトurlを入れて対応しました。

あとがき・まとめ

  • スターサーバーフリーWPプランが提供停止になった。無料プランではこういうのはよくあるので、サイト引っ越しの必要が出てくる
  • 画像・テーマファイルなどをダウンロード・新サーバーにアップロードし、SQLエクスポート/インポートで、サックリ対応できる
  • 旧サイトのアドレスやファイルパスが残っている部分だけは直す
  • .htaccessファイルが使えないときは、Redirectionプラグインなどで対応

まとめると、このようなところでしょうか。サイトのサーバー引っ越しは、転送設定やファイル切れなど、気にする部分が多いですが、SQLエクスポート/インポートだと、設定などをまるまる移せるので、ミスる可能性が低くなります。
プラン終了以外でも、『サーバーをパワーアップさせて、より多くのユーザーに情報を届けたい』等の場合も、ぜひご検討ください。

WordPressサイト制作&リニューアル・機能開発サービス | アトリエSS


【カテゴリ】 - PHP・データベースetc
【タグ】 - ,

  関連記事

PHP・mb_substr関数を使って、タイトル文字数を揃える(WPレイアウト調整)
【WordPressフィールド画像取得】array_push&foreachループ、代替テキストをクラス出力、表示/非表示を切り替える方法
WordPressの記事IDで判定して転送~PHP・headerとget_the_IDで対応、the_IDとの挙動の違いも
【PHP】GD関数『imagewebp』でのWebP変換方法&使えないポイント
【別に止めなくてOK】WordPressサイトなどに、アメブロ・fc2など無料ブログの更新情報を表示して連携する方法
【ユーザーデータ取得】WordPress定義済み関数の『get_userdata()』『wp_get_current_user()』ってどのように違うの?
【webサイトセキュリティ対策】検索フォームへのSQL判定などがある不正な入力を、WAFで遮断する
WordPress・REST APIのjsonファイルにカスタムフィールドを入れ、タイトル・アイキャッチと共に外部サイトで取得・表示
【WordPress更新情報表示】php/wp組み込みファンクション(fetch_feed)で取得と、プラグインで表示どちらが良い?
【WordPressでPHPプログラムを学習シリーズ1】用語:PHP変数・関数・定数を、WPの機能を通して覚える
【WordPressカスタムフィールド検索】meta_queryで、シリアライズ値が入ったフィールドを持つ記事をヒットさせるには?
【超危険】WordPressデータベースリビジョンお掃除