SandY Design Studioはインボイス発行事業者です詳細

WordPress ローカルサイトを簡単確実に本番サーバーへ移行する術

これまで幾度となくトライしてきたローカル環境に構築したWordPressの本番サーバー移転。何度やっても必ずどこかでつまづいたりしてスマートにはいかなかった。のだが試行錯誤の末この度ようやくノートラブルで移転できる方法を(私の中で)確立できた(気がする)ので残しておこうと思う。タイトルの「簡単」は言いすぎかも。。

本番サーバーのサイト→ローカルへの引越し手順

逆向き、本番サーバーからローカルサイトへの移転に関しては以前に書いている記事があるのでそちらを参照していただきたい。

あわせて読みたい
WordPress 本番サイトをそのままローカル環境に持ってくる術 WordPress本番サーバーからローカルパソコンのWordPressローカル環境構築ツールLocal by Flywheelに引越しする手順です。プラグイン等移行ツールは使用しないので少し手間ですが変なエラーに悩まされたりしないかと。
Contents

移行するサイトの環境・仕様・前提条件

ここで説明する環境

  • ローカルサーバーFlywheel社のLocalである
  • 本番サーバーさくらインターネットのレンタルサーバー

この2点が違うと基本的な手順は同じでも図柄や細かい部分が変わってくるので初心者の方には参考にならないかもしれない。同じであればほぼこの手順通りでノートラブルに移行できるのではなかろうか。

使うものと使わないもの

バックアップ系や移行支援などのWordPressのプラグインは使わない

WordPressの引越しプラグインはいくつもありそれらでうまく移行できる人はそれを使えばOK。ちなみに私はAll-in-One WP Migrationを何度か試したことがある(無料版だが…)がアップロードサイズ問題や途中で止まったりで使えた試しがない。

.hostsファイルはいじらない

当記事と同系の内容の他記事では、パソコン内の.hostsファイルから該当する数行を削除する旨の記述をよく見かけるが、ここでは必要ない。

データベースの書換えにSearch-Replace-DB-masterを使う

これはWordPressプラグインではなく、phpスクリプトである。データベース内のURL文字列を手軽に書き換えるツールとして頻出するので知っておいて損はないと思う。もう数年バージョンアップされてないのが少々心配ではあるが現状のphp8系でも使えている。

移行に必要な設定情報

設定に必要な情報は以下の通りとする。今回は抽象化してみた。適宜読者の環境に読み替えて読み進めてほしい。

スクロールできます
データベース名hoge_piyo
データベースユーザー名hoge
接続先パスワードhugahuga
データベースサーバー名mysql100.sakura.ne.jp
初期ドメイン名https://hoge.sakura.ne.jp
今回のインストールディレクトリhttps://hoge.sakura.ne.jp/piyo(=~/www/piyo)
独自ドメイン名https://hoge.com

【参考】記事執筆時の各サーバーの稼働環境は以下の通り。

スクロールできます
ローカルサーバー(以降「ローカル」と表記)本番サーバー(以降「サーバー」と表記)
Local by Flywheel バージョン9.xさくらのレンタルサーバー
PHPバージョン 8.2PHPバージョン 7.4
Webサーバー ApacheWebサーバー Apache
データベース MySQL 8.0データベース MySQL 5.7

【参考】あまり関係ないとは思うが記事執筆時点のPC環境は下表の通り。

PCm1 mac (Apple Silicon)
OSmacOS 13.x Ventura
webブラウザGoogle Chrome

想定シナリオとしては、既に稼働中の独自ドメインサイトのリニューアルである。なので、サイトのダウンタイムを最小限に留めるため一旦エイリアス初期ドメイン名のサブディレクトリへ新サイトをセットアップする。具体的には、https://初期ドメイン/サブディレクトリの環境でまずは問題なく動くようにする。稼働が確認できたらWordPress内部のURLをすべて本番ドメインURLhttps://hoge.comへ書き換えるという2段構えになる。

サーバーにデータベースを新規作成する

さくらインターネットのコントロールパネルから本番サーバーのデータベース新規作成画面を開く。1

ログインする
左メニューからWebサイト/データデータベース を選択
新規追加 をクリック

データベース新規作成画面にて、データベース名を決め(ここではhoge_piyoとするがhoge_はあらかじめ固定され表示されているのでpiyoのみ入力)、同意するに☑チェックを入れ作成するをクリックで新規データベースを作成する。

データベース名・同意欄☑チェックを入れ作成するをクリック
この際、以下の 大切な4つの合言葉 をメモしておく

大切な4つの合言葉

  1. 今しがた自分が決めたデータベース名(ここではhoge_piyoとする)
  2. ユーザ名(ここではhoge
  3. パスワード(ここではhugahuga
  4. データベースサーバー名(ここではmysql100.sakura.ne.jp

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

ローカルアプリケーションLocal by Flywheelにて移行サイトを起動する。

  • 事前に不要なプラグインを停止しておく(バックアップ、セキュリティ、キャッシュ)
  • バックアップファイル、利用していないメディアファイルなどがあるならこれらも事前に削除してローカルのWordPressをできるだけスリムにしておいたほうがいいと思う

DatabaseOpen AdminerEvoでブラウザ上にAdminerEvoを立ち上げる。

Databaseをクリック
Open AdminerEvoをクリック

AdminerEvoの左ペインからエクスポートをクリックする。

  1. 下図①の通りの設定にして、
  2. 各テーブル項目とデータ項目にすべてチェックを入れて、
  3. エクスポートボタンをクリック

出来上がったファイルlocal.sqlを任意の場所に保存する。

これ以降ローカルアプリケーションLocal by Flywheelは不要なのでアプリを終了してOK

WordPressで必要なテーブル

図はphpMyAdminで見た我がサイトでのWordPressのデータベースの中にあるテーブル一覧だ。一番下に「21テーブル」とあるが、実際WordPress本体のテーブルとしては12テーブルのみだ。図では青で示している部分である。プラグインをすべて外しているならこの12のテーブルのみをエクスポートの対象として問題ない。ただし今回の図の例ではこのWordPressのテーマテンプレートに「SWELL」を使っておりこれが利用するテーブルもひとつ存在するのでエクスポートに含める必要がある(緑で示している部分)

ローカルのファイル群をサーバーへアップロード

ローカルの移行するサイトのインストールディレクトリ~/Local Sites/ローカルサイト名/appの中にあるフォルダpublicをデスクトップにコピーする。

~/Local Sites/ローカルサイト名のフォルダへはGo to site folderをクリックすればFinderで開く
publicをデスクトップにコピーする

コピーしたpublicフォルダ名をpiyoに書き換える。

デスクトップ上のpiyoフォルダの中のファイルwp-config.phpの中身を下図の通り前述の「大切な4つの合言葉」に書き換える。

このwp-config.phpの中身を下図の通り書き換える
/** WordPress のためのデータベース名 */
define('DB_NAME', 'hoge_piyo');  //大切な4つの合言葉の①

/** MySQL データベースのユーザー名 */
define('DB_USER', 'hoge');  //大切な4つの合言葉の②

/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'hugahuga');  //大切な4つの合言葉の③

/** MySQL のホスト名 */
define('DB_HOST', 'mysql100.sakura.ne.jp');  //大切な4つの合言葉の④

FTPでpiyo~/www(=/home/hoge/www)へアップロードする。

ここではFTPアプリとしてFileZillaを利用している

サーバーのデータベースにインポート

先ほどローカルのデータベースからエクスポートしておいたファイルlocal.sqlを本番サーバーのデータベースツールphpMyAdminを使いサーバーのデータベースにインポートする。

左メニューからWebサイト/データデータベース を選択後、phpMyAdminログイン
実際はパスワードのみ入力が必要となる
上段メニューからデータベースを選択
先ほど作った新規データベースhoge_piyoをクリック
上段メニューからインポートを選択
ファイルを選択をクリックし保存済のlocal.sqlを選択
ファイルを選択の中にlocal.sqlが入ったのを確認し最下段のインポートをクリック
図のようなメッセージが出れば成功

ここまでで引越し作業そのものは完了となる。以降は本番サーバーのデータベースに書き込まれているローカルのURLを本番サーバーのそれに変更していく。

ダッシュボード内の設定

ブラウザでhttps://hoge.sakura.ne.jp/piyo/wp-login.phpへアクセスしWordPressにログイン。

ユーザ名とパスワードはローカルで使ってた管理者のものを

WordPressアドレス/サイトアドレスの設定

ダッシュボード設定一般を開き、WordPress アドレス (URL)項とサイトアドレス (URL)項の両方を現在のローカルアドレスからhttps://hoge.sakura.ne.jp/piyoへ書き換える。

変更を保存を忘れずに

この際、もしどこかへリダイレクトされる等でダッシュボードに入れなければ、phpMyAdminから直接データベースのテーブルを更新するという手もある。以下手順。

STEP

phpMyAdminログイン後、データベースを選択

データベースをクリック
STEP

該当するデータベース名を選択

先程作ったデータベース名をクリック
STEP

書き換えるテーブルwp_optionsを選択

wp_options テーブルをクリック
STEP

wp_optionsテーブルの1行目と2行目がWordPress アドレス (URL)項とサイトアドレス (URL)項にあたる

1行目と2行目を本番サーバ名に書き換える
STEP

URLを直接ダブルクリックすると編集可能になるので、https://hoge.sakura.ne.jp/piyoと書き換える

URLをダブルクリックすると編集可能になる

パーマリンクの設定上書き

ダッシュボード設定パーマリンク変更を保存をポチッと押しておく。

この手順をすっ飛ばすとトップページ以外「404 Not Found」とかになる。逆をいうとトップページ以外「404 Not Found」現象に見舞われた場合、このパーマリンク設定上書きを行うことで治る(筈、多分)

DB内に書き込まれているローカルのURL全部を本番URLに書き換える

毎度おなじみのSearch-Replace-DB-masterを使ってデータベース内のURLを一気に書き換える。

Search-Replace-DB-Masterの準備

まだSearch-Replace-DB-masterを持ってない場合はサイトにアクセスして名前とメアドを登録したらダウンロードできるのでダウンロードしてそのZIPを解凍しておく。慣れてない人は使いにくいがGitHubにもある。

ZIPを解凍してできたSearch-Replace-DB-masterというフォルダをFTPで~/www/piyoの中にアップロードする。

そのパスにブラウザからアクセスする。URLは以下のようになる。

https://hoge.sakura.ne.jp/piyo/Search-Replace-DB-master

Search-Replace-DB-masterの設定と実行

SerchReplace項にローカル環境でのURLと本番サーバーのURLを入力する。

replace欄がローカルサイトのURL、with欄が本番サーバーのURL

Database Details項に下記それぞれ入力後、Test connectionをクリックする。

  1. Database name大切な4つの合言葉の① hoge-wp
  2. username大切な4つの合言葉の②hoge
  3. pass大切な4つの合言葉の③hugahuga
  4. host大切な4つの合言葉の④mysql100.sakura.ne.jp
  5. port: 空白

Success. You are connected. と表示されればDBへの接続OKとなる。

テストランと本番ラン

Do a safe test runでテストランしてみる。

環境によってはエラーメッセージが出まくることがあるが殆どの場合気にする必要ない(経験則)。

大量の真っ赤のエラーっぽいメッセージが!…もう慣れたけど

下半分にテーブル毎のデータの書き換え数(これはドライランだから書き換えてないが)が表示される。いけてそうな気がしたら、Search and Replaceボタンをポチって祈る。

Search and Replaceボタン上の文章の訳は「やり直せへんけどええのか−知らんで?」
完了

稼働確認→本番の独自ドメイン名設定

初期ドメイン名にて正常に動作するか検証

https://hoge.sakura.ne.jp/piyo へアクセスし移行先のウェブサイト各ページに問題がないか確認する。

問題なければ、次項からのURL書き換え(初期ドメイン/サブディレクトリ から 独自ドメインへ)を実施する。

WEB公開フォルダを変更

コントロールパネルドメイン/SSL を開き、独自ドメインhoge.comを公開するフォルダを指定する。

hoge.com①を公開するフォルダ②を書き換えるために、③設定を開く
設定基本設定をクリック
WEB公開フォルダ項を~/www/piyoと書き換え、保存するボタンをクリック

WordPressアドレスとサイトアドレスを変更

ダッシュボード設定一般を開き、WordPress アドレス (URL)項とサイトアドレス (URL)項を現在の初期ドメイン/サブディレクトリから独自ドメインhttps://hoge.comへ書き換える。

変更を保存を忘れずに

Search-Replace-DB-masterにてURLを再度変更

Search-Replace-DB-masterにてデータベース内のURLを独自ドメイン名へ書き換える。

replace欄が初期ドメイン/サブディレクトリURL、with欄が独自ドメインのURL
これ以下はさっきのと同じ

方法は先程と同様なので図示は以降省略する。

書き換えが済んだらSearch-Replace-DB-masterはもう用無し。悪用を防ぐため必ず削除すべし。


以上で、Local by FlywheelによるWordPressのローカルサイトを簡単確実にさくらインターネットのレンタルサーバーを利用した本番サーバーへ移行する手順は終了となる。参考にしてくれた貴殿のサイトが上手く移行できていることを切に願う。

よかったらシェアしてね!
Contents