ローカルのWordPressを本番サーバのサブディレクトリへ移行する

ローカルのルート直下で作成したWordPressフォルダを、本番サーバのサブディレクトリへアップロードする。

プラグインを使用する方法と、プラグインを使用しない方法の2パターンで試す。

移行環境

移行元移行先
環境ローカルサーバー
ディレクトリルート直下サブディレクトリ
サーバーLocal by Flywheelレンタルサーバー
MySQL管理ツールAdminerphpMyAdmin
テーブル接頭辞wp_wp_
URL置換Better Search Replace

プラグインを使用する方法

ローカルにAll-in-One WP Migrationをインストールする

WordPressプラグインのAll-in-One WP Migrationをローカルにインストールして有効化すると、ダッシュボードの左メニューにAll-in-One WP Migrationが追加されるので子メニューのエクスポートクリックする。

ローカルのデータをエクスポートする

エクスポート先をクリックして展開し、ファイルを選択する。

ダウンロードサイズの計算終了後、ダウンロードボタンをクリックしてダウンロードする。

XXXXXXXX-日付-XXXXXXXXXXXXX.wpressというファイルがダウンロードされる。

本番サーバのサブディレクトリにWordPressをインストールする

WordPress.orgから最新バージョンのWordPressをダウンロードして解凍する。解凍したフォルダは任意のフォルダ名(testなど)に変更後、本番サーバのルート直下にアップロードする。

  • public_html
    • test

また、データベースを新規作成する。

WordPressを任意のテーブル接頭辞&サブディレクトリにインストールするを参考にして、いったん本番サーバ上にWordPressのインストールを完了させる。

本番WordPressにAll-in-One WP Migrationをインストールする

ローカルで作成したエクスポートファイルを本番サーバへアップロードするため、本番WordPressでもAll-in-One WP Migrationをインストールして有効化する。

本番WordPressへインポートする

本番WordPressのAll-in-One WP Migrationのインポートを表示し、ローカルへエクスポートしたファイルをドラッグ&ドロップでインポートする。

インポート実行前に警告が出るが、開始をクリックする。

注意

インポートファイルサイズに対し、最大アップロードファイルサイズが足りない場合は、別途プラグインAll-in-One WP Migration File Extensionで拡張も検討する

本番サーバにインポート完了

本番環境にアクセスし、画像が適切に読み込まれているか、リンクが正しく遷移するか、ログインできるかなどを確認する。

注意

ダッシュボードにログイン出来ないときは、ブラウザキャッシュを削除する。それでも解決できないときは、別の方法を試行する。

All-in-One WP Migrationが使用できる環境ならば、こちらのプラグインを使用したほうが安全で手間も少ない。しかし、何らかの理由でAll-in-One WP Migrationを使用できない場合は、手動でデータ移行を実行する。

プラグインを使用しない方法

データの移行にプラグインを使用しない方法を掲載するが、URL置換にはプラグインを使用している。プラグインを使用しない場合は、ローカルのWordPressを本番サーバのサブディレクトリへ移行するを参考に、Search-Replace-DBを使用する。

ローカルのデータベースをエクスポートする

ローカル環境のAdminerにアクセスし、エクスポートするデータベースを選択し、エクスポートをクリックする。

出力を保存とし、形式をSQLを指定する。ほかの項目はデフォルトで良い。

本番サーバのサブディレクトリにWordPressをアップロードする

ローカルの作業用WordPressフォルダを複製し、フォルダ名を任意のフォルダ名(testなど)に変更後、本番サーバのルート直下にアップロードする。

  • public_html
    • test

また、本番上にデータベースを新規作成する。

本番サーバのphpMyAdminへインポートする

本番環境のphpMyAdminへアクセスし、さきほど作成したデータベースをクリックし、インポートタブを表示する。

インポートするファイルで、ローカル環境からエクスポートしたファイルを選択し、実行をクリックする。

テーブル接頭辞がデフォルトのwp_としてインポートされているのが確認できる。

wp-config.phpを編集してデータベースと接続する

本番のtestフォルダの直下にあるwp-config.phpをダウンロードしてエディターで開く。

データベースの情報を入力する。


/** The name of the database for WordPress */
define('DB_NAME', 'XXXXXX');

/** MySQL database username */
define('DB_USER', 'XXXXXX');

/** MySQL database password */
define('DB_PASSWORD', 'XXXXXX');

/** MySQL hostname */
define('DB_HOST', 'XXXXXX');

また、テーブル接頭辞はデフォルトのwp_のままとする。


$table_prefix = 'wp_';

データベースの情報を入力が完了したら、サーバーへアップロードする。

本番WordPressへアクセスする

本番WordPressのトップページはhttp://XXXXXXXXX/testなので、ブラウザへ入力してアクセスする。

この時点ではCSSが当たらず崩れている。ログインページへ飛ぼうとすると、無効なURLですと表示され、ログインフォームへ到達できない。

データベースを編集する

データベースのwp_optionsテーブルを表示し、siteurlとhomeを適切な値に変更する。

siteurlhttp://XXXXXX/test
homehttp://XXXXXX/test
注意

どちらも入力時に末尾にスラッシュを付けない

TOPページの表示が正常になり、管理画面にログインできるようになる。

Better Search Replaceで置換する

リンクや画像パスがローカルサイトを参照しているので、本番のパスへ置換する。置換にはプラグインBetter Search Replaceを使用する。

Better Search Replaceをインストールして有効化すると、左メニューのツールの中にBetter Search Replaceが出現するのでクリックする。

置換元置換先を入力し、すべてのテーブルを選択し、まずRun as dry runにチェック入れて検索/置換の実行クリックして、事前検証を行う。

問題ないようであれば、Run as dry runのチェックを外して、検索/置換の実行をクリックする。

ローカルのルート直下から本番サーバのサブディレクトリへ移行完了

画像やリンクの読み込み元が適正化されるが、キャッシュが残っていると適正化されないことがあるため、キャッシュの削除を行い、表示を確認する。また管理画面へのログインも可能かどうか確認する。