【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エクスポート/インポートだと、設定などをまるまる移せるので、ミスる可能性が低くなります。
プラン終了以外でも、『サーバーをパワーアップさせて、より多くのユーザーに情報を届けたい』等の場合も、ぜひご検討ください。


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

  関連記事

【WPユーザー名バレ対策】ユーザー名表示からPHP・preg_matchでリダイレクト(wp-json/wp/v2/usersなど)
【PHP etc.プログラム学習サイトコードコピペ】全角引用符・バッククオートが入ってて動かない件に注意
WordPressの記事IDで判定して転送~PHP・headerとget_the_IDで対応、the_IDとの挙動の違いも
【WP記事取得クエリ・プラグイン無し】お知らせなどに使える、ショートコードで特定カテゴリ記事を表示プログラム
【WordPress条件分岐】is_singleとis_singularって違うの?→idやスラッグ指定、投稿タイプ指定の面で違いが
WordPress一覧表示で、特定のカテゴリ/投稿を表示しないようにするには?→category_not_in・post_not_inで
PHP・mb_substr関数を使って、タイトル文字数を揃える(WPレイアウト調整)
PHP・shuffleやarrayを使った、画像ランダム表示方法~メインビジュアルやバナー・テキストにも利用可能
【画像つきでわかりやすい】WordPressで使われるデータは、MySQLデータベースに、どのように格納されているの?
WordPressユーザーが覚えると便利な条件分岐~投稿記事・固定ページ指定して表示/非表示
【別に止めなくてOK】WordPressサイトなどに、アメブロ・fc2など無料ブログの更新情報を表示して連携する方法
WordPress記事一覧ページの『本文からの抜粋』を表示する関数と、その文字数の調整方法をチェックする