システム開発

WordPress本番環境をローカル環境に移行【xserverのバックアップデータから復元実施】

レンタルサーバーでブログを運営していると、バックアップをとっていてもきちんと復旧できるものなのか?

プラグインとかいろいろといれているので、何かの関係で記事が壊れたり、表示がおかしくなったりはしないか?

などなど、いくつかの不安があります。

ブログをはじめてもう少しで2ヶ月になります。

1か月目はバックアップしただけで終わらせていたので、今回はローカルのPCに移してみて、実際にバックアップデータの確認をしてみます。

自分のPC内のlocalhostに、このブログが移行できればゴールです。

WordPressサイト(xserverで運用中)をローカル環境に移行

移行

xserverで運用しているサイトから、Windows10のlocalhostへの移行です。
localhost環境は、xampp を使って環境構築しています。

xamppインストールについては、下記をご参照ください。

関連記事
プログラミング
PHPをWindowsにインストール【XAMPPで簡単PHP】

PHPを使ってみたい ではPHPをインストールするのにおすすめの方法をおしえるぞい 各種言語インストールがシリーズ化しつつありま ...

続きを見る

 

移行の方針

「xserver上にあるサイトを丸ごとローカル環境にコピーして、リンクしているURLの情報を書き変える」

この方法が、最も手間がかからないと考えました。

wordpressはデータベース(MySQL)を利用していますので、やることは大きく3点です。

  1. 本番環境(xserver)のサイト上のデータをローカルにコピー
  2. 本番環境データベースのデータをローカルのデータベースにインポート
  3. ローカルのデータベースのURL情報をローカルのURL(localhost等)に変更

 

手順1)本番環境(xserver)のサイト上のデータをローカルにコピー

xserverは、手動でバックアップしたデータを手元のPCにダウンロードができます。

サーバパネルにログインして、アカウントのバックアップからサイト情報を固めてダウンロードできるし、データベースのMySQLバックアップからデータベース情報をバックアップして自分のPCにダウンロードが可能です。

xserverのサーバーパネルから、ボタンを押すだけで自分のPCに落とせます。

アカウントのバックアップからサイトのデータをダウンロード

ダウンロードファイルが、tar.gzで固まっているので、解凍可能なソフトで展開してください。

自分は、7-Zipをダウンロードしてきて、使いました。

7-Zipダウンロードサイト
sevenzip.osdn.jp/download.html

 

インストーラで簡単にインストールできるし、右クリックで簡単に展開できます。

バックアップ対象はたくさんありますが、展開対象は、自分のサイトのURLのもの、その中のpublic_htmlというフォルダの中身一式です。

けっこう階層は深いですが、必要なのはそのフォルダのデータのみです。

sshでターミナル接続して固めてFTPでダウンロードできる方はそちらでもいいかもしれません。
もっとも、大抵の場合は、public_html部分がデータ量のほとんどですので、バックアップのダウンロードがお手軽です。

そのフォルダの配下のすべてのファイルを、localhostで設定している先にまるごとコピーします

XAMPPデフォルトであれば、c:/xampp/htdocs というフォルダ配下になります

必要に応じて、htdocsの配下のファイルをバックアップしたうえで、public_html配下を全部コピーしてしまいます。

そのうえで、変更するのは、1ファイル(wp-config.php)の1か所だけです。ファイルをテキストエディタで開き、下記の内容を確認します。

/** WordPress のためのデータベース名 */
define( 'DB_NAME', 'データベース名_wp1' );
/** MySQL データベースのユーザー名 */
define( 'DB_USER', 'ユーザ名_wp1' );
/** MySQL データベースのパスワード */
define( 'DB_PASSWORD', 'パスワード' );
/** MySQL のホスト名 */
define( 'DB_HOST', 'localhost' );
/** データベースのテーブルを作成する際のデータベースの文字セット */
define( 'DB_CHARSET', 'utf8' );
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define( 'DB_COLLATE', '' );

MySQLのホスト名が、サーバー名.xserver.jpとなっているので、localhostに変更します

それ以外は、ローカル環境側を合わせてしまえばいいので、そのままにしておきます。

これで、サイトデータは複製できて、設定も完了している状態です。

 

手順2)本番環境データベースのデータをローカルのデータベースにインポート

次に、データベース(MySQL)にデータをコピー(インポート)します

xserverからMySQLのバックアップデータを取得して、ダウンロードしておきます

圧縮してダウンロードした場合には、7-Zipで展開しておいてください。

 

次に、XAMPPを立ち上げて、ApacheとMySQLをスタートさせます。

XAMPP画面

XAMPPの画面にある、MySQLのAdminから、phpMyAdminにログインします。

はじめての場合には、rootユーザにパスワードが未設定ですので、セキュリティ強化のため下記の手順を実行してください

 

パスワードの指定

コマンドシェルを起動します(XAMPPの右側に起動ボタンあり)

mysqlにログインします。
mysql-u root

パスワードを変更します
set password=password('指定するパスワード')

quitでmysql、exitでシェル終了になります。

このままだと、phpMyAdminにログインできなくなりますので、下記の設定を行います。

XAMPPの管理画面でMySQLをストップします。

c:\xampp\phpmyadmin フォルダにある(config.inc.php) というファイルを編集します。

$cfgが先頭についている行の['password']のところに先ほど変更したパスワードを設定します

※または、['auth_type']の'config'を'cookie’にすることでログイン画面が表示されますので、そこでログインするようにも設定できます。その場合、['user']の'root'と指定がある行を消してください。ID/PASSの入力画面が表示されます。

保存して、先ほど停止したMySQLを再スタートします。

Adminボタンを押下して、MySQLの管理画面にログインできたらパスワード変更と設定は完了です。

次に、データベースを作成します。

ファイルコピー後に編集した(wp_config.php)に設定のあるデータベースとパスワードを参照し、同じもので作成します。
データベースを作成すると、テーブルはありませんといわれますが、テーブルは作成不要です。

本番環境のバックアップファイル(.sqlファイル)をインポートします。

インポートを指定し、ファイルを選択して実行ボタンを押せば、インポートが実行されます。
ここまでで、データベースのコピーが完了しました。

 

手順3)ローカルのデータベースのURL情報をローカルのURL(localhost等)に変更

最後の手順3は、最初は、インポート前のsqlファイルのURL情報を一括置換するかと考えていました。

ただ、データベースは整合性を保持するための情報ももっているため、リスクが高いということで下記ツール利用に切り替えました。
完全に定着しているツールで、使ってみましたが、簡単に置換できました。

Search-Replace-DB、開発元のURLは下記になりす。
https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

GPLライセンスで、githubにも公開があります。
https://github.com/interconnectit/Search-Replace-DB

開発元からダウンロードする場合は、ユーザ名とメールアドレスを入力すれば、ダウンロード用のURLがメールで送ってきます。

hereをクリックすれば、ダウンロードできます

赤字で注意書きがあります。データベースを一括で変更する危険度の高い開発用のツールなので、理解できる方が自己責任でご利用くださいということです。

確かにデータベースの内容を置換してしまうという、リスクが伴うツールですので、自己責任でご利用ください。
ダウンロードしたZIPファイルを移行データをコピーしたフォルダ(htdocs等)に展開してください。

[Search-Replace-DB-4.1.1]というフォルダができますので、ブラウザの入力欄で下記を入力します。
(http://localhost/Search-Replace-DB-4.1.1/)

起動すると下記画面になります。

SEARCH and REPLACE

以下の手順で実行してください。

SEARCH AND REPLACE

(1)更新するURLの入力
replace 欄に変更前のURL(例えば、このブログだとsimpleonesoft.com/blogを入力します。

with欄に変更後のURL(localhost)を入力します。

(2)Database Details に、データベースへの接続情報を入力

今までも登場した(wp-config.phpから、データベース名、ユーザ名、パスワードを転記します。

(3)テスト接続を実施

Test connnection を押して、成功すれば、データベース接続情報の入力はOKです。

(4)変更対象の確認

実際の更新前にどの程度の変更対象があるかを確認できます。
[do a safe test run]ボタンを押下して確認してみてください。

(5)実際の更新を実施
[Search and Replace]ボタンを押すと実際の更新が行われます。

(6)ツールの削除

危険度が高いツールのため、[delete me]でツールを削除してください。
※このボタンだけだと最後にいくつかファイルが残りますので、フォルダごとバッサリ削除でも問題ありません。
ツールを残さないことが肝心です。

ここまでできれば、設定はひととおり完了です。

 

確認

表示してみます。ブラウザを立上げ、URL欄に localhostと入力します。

ブログ画面

表示できれば確認OK。

Wifiを切って、インターネットの接続を止めて確認しています。

Wifiを切った場合は、外部サイト(wordpressサイト)から直接リンクしていたプロフィール画像は出なくなりますが、それ以外はきちんと移行されたことがわかります。

Wifiをつなげば、プロフィール画像もちゃんと表示されました。

実際の記事へのリンクなども確認して問題なければ移行完了です。

おつかれさまでした。

 

最後までお読みいただき、ありがとうございました。

-システム開発

Copyright© SIMPLEONESOFT (BLOG) , 2022 All Rights Reserved.