これまで幾度となくトライしてきたローカル環境に構築したWordPressの本番サーバー移転。何度やっても必ずどこかでつまづいたりしてスマートにはいかなかった。のだが試行錯誤の末この度ようやくノートラブルで移転できる方法を(私の中で)確立できた(気がする)ので残しておこうと思う。タイトルの「簡単」は言いすぎかも。。
本番サーバーのサイト→ローカルへの引越し手順
逆向き、本番サーバーからローカルサイトへの移転に関しては以前に書いている記事があるのでそちらを参照していただきたい。
移行するサイトの環境・仕様・前提条件
ここで説明する環境
- ローカルサーバーは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.2 | PHPバージョン 7.4 |
Webサーバー Apache | Webサーバー Apache |
データベース MySQL 8.0 | データベース MySQL 5.7 |
【参考】あまり関係ないとは思うが記事執筆時点のPC環境は下表の通り。
PC | m1 mac (Apple Silicon) |
---|---|
OS | macOS 13.x Ventura |
webブラウザ | Google Chrome |
想定シナリオとしては、既に稼働中の独自ドメインサイトのリニューアルである。なので、サイトのダウンタイムを最小限に留めるため一旦エイリアス初期ドメイン名のサブディレクトリへ新サイトをセットアップする。具体的には、https://初期ドメイン/サブディレクトリ
の環境でまずは問題なく動くようにする。稼働が確認できたらWordPress内部のURLをすべて本番ドメインURLhttps://hoge.com
へ書き換えるという2段構えになる。
サーバーにデータベースを新規作成する
さくらインターネットのコントロールパネルから本番サーバーのデータベース新規作成画面を開く。1
データベース新規作成画面にて、データベース名を決め(ここではhoge_piyo
とするがhoge_
はあらかじめ固定され表示されているのでpiyo
のみ入力)、同意するに☑チェックを入れ作成するをクリックで新規データベースを作成する。
大切な4つの合言葉
- 今しがた自分が決めたデータベース名(ここでは
hoge_piyo
とする) - ユーザ名(ここでは
hoge
) - パスワード(ここでは
hugahuga
) - データベースサーバー名(ここでは
mysql100.sakura.ne.jp
)
ローカルのデータベースをエクスポートする
ローカルアプリケーションLocal by Flywheelにて移行サイトを起動する。
- 事前に不要なプラグインを停止しておく(バックアップ、セキュリティ、キャッシュ)
- バックアップファイル、利用していないメディアファイルなどがあるならこれらも事前に削除してローカルのWordPressをできるだけスリムにしておいたほうがいいと思う
Database>Open AdminerEvoでブラウザ上にAdminerEvoを立ち上げる。
AdminerEvoの左ペインからエクスポートをクリックする。
- 下図①の通りの設定にして、
- 各テーブル項目とデータ項目にすべてチェックを入れて、
- エクスポートボタンをクリック
出来上がったファイルlocal.sql
を任意の場所に保存する。
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
)へアップロードする。
サーバーのデータベースにインポート
先ほどローカルのデータベースからエクスポートしておいたファイルlocal.sql
を本番サーバーのデータベースツールphpMyAdminを使いサーバーのデータベースにインポートする。
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から直接データベースのテーブルを更新するという手もある。以下手順。
phpMyAdminログイン後、データベースを選択
該当するデータベース名を選択
書き換えるテーブルwp_optionsを選択
wp_optionsテーブルの1行目と2行目がWordPress アドレス (URL)項とサイトアドレス (URL)項にあたる
URLを直接ダブルクリックすると編集可能になるので、https://hoge.sakura.ne.jp/piyo
と書き換える
パーマリンクの設定上書き
ダッシュボード > 設定 > パーマリンク > 変更を保存をポチッと押しておく。
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を入力する。
Database Details項に下記それぞれ入力後、Test connectionをクリックする。
- Database name: 大切な4つの合言葉の①
hoge-wp
- username: 大切な4つの合言葉の②
hoge
- pass: 大切な4つの合言葉の③
hugahuga
- host: 大切な4つの合言葉の④
mysql100.sakura.ne.jp
- port: 空白
Success. You are connected. と表示されればDBへの接続OKとなる。
テストランと本番ラン
Do a safe test runでテストランしてみる。
環境によってはエラーメッセージが出まくることがあるが殆どの場合気にする必要ない(経験則)。
下半分にテーブル毎のデータの書き換え数(これはドライランだから書き換えてないが)が表示される。いけてそうな気がしたら、Search and Replaceボタンをポチって祈る。
稼働確認→本番の独自ドメイン名設定
初期ドメイン名にて正常に動作するか検証
https://hoge.sakura.ne.jp/piyo
へアクセスし移行先のウェブサイト各ページに問題がないか確認する。
問題なければ、次項からのURL書き換え(初期ドメイン/サブディレクトリ
から 独自ドメイン
へ)を実施する。
WEB公開フォルダを変更
コントロールパネル > ドメイン/SSL を開き、独自ドメインhoge.com
を公開するフォルダを指定する。
hoge.com
①を公開するフォルダ②を書き換えるために、③設定を開く~/www/piyo
と書き換え、保存するボタンをクリックWordPressアドレスとサイトアドレスを変更
ダッシュボード > 設定 > 一般を開き、WordPress アドレス (URL)項とサイトアドレス (URL)項を現在の初期ドメイン/サブディレクトリ
から独自ドメインhttps://hoge.com
へ書き換える。
Search-Replace-DB-masterにてURLを再度変更
Search-Replace-DB-master
にてデータベース内のURLを独自ドメイン名へ書き換える。
初期ドメイン/サブディレクトリ
URL、with欄が独自ドメイン
のURL方法は先程と同様なので図示は以降省略する。
以上で、Local by FlywheelによるWordPressのローカルサイトを簡単確実にさくらインターネットのレンタルサーバーを利用した本番サーバーへ移行する手順は終了となる。参考にしてくれた貴殿のサイトが上手く移行できていることを切に願う。