WordPressをプラグインなしでLocal by Flywheelにサブディレクトリでコピーする方法

サブディレクトリ WordPress

WordPressサイトを運営していて、ローカルの「Local by Flywheel」環境に「サブディレクトリ」でミラーサイトを作成する際の方法です。

準備段階

やること

今回は

  • xserverからのローカルへのミラーサイト作成
  • WordPressのフォルダはサブディレクトリに設置
  • ドメインはローカル環境になるので変更
  • ftpソフト(FileZilla)使用
  • データベースのバックアップと移動、ドメイン変更処理
  • プラグインは使わない

以上の展開で実行します。

手順

手順は

  1. 移動先となるローカルWordpress作成
  2. 移動元のXserverからサイトをftpソフトかXserverのバックアップツールでバックアップ
  3. 移動元のデータベースからエクスポートでバックアップ
  4. 移動先Wordpressのサブディレクトリ処理
  5. 移動先のデータベースへインポート
  6. 移動元のファイルからwp-config.php以外を移動先にftpソフトでバックアップ
  7. データベース変換ツールのアップロード
  8. データベース変換
  9. データベース変換ツール削除
  10. wp-config.phpの編集
  11. ログイン確認→引越完了

以上の順番が待ち時間の少ない合理的な手順となります。

投稿時の環境

OS
Windows10.home
WordPress
5.1.1
サーバー
Xserver
ローカル環境作成
Local by Flywheel
データベース置き換え
Search Replace DB
ftpソフト
FileZilla

ローカルサイトの作成と下準備

今回はミラーサイトの作成をしようとしているので、まずは「Local by Flywheel」で元なるサイトをローカル環境に作成しました。

Local by Flywheel」の使用方法はこちらなどを参考に

Localでwordpressをつくり、Xseverからローカル環境にバックアップサイトを作成する
自分のPC(ローカル環境)にWordpressをインストールしてサーバーなどではなく、ローカル環境でテストなどを行いたい。との願いでFlywheel社が公開しているアプリ「Local」をインストールしてWordpressを作成するまでの手順...

無事完了したら、コピー元のサイトに接続してftpソフトでファイルをバックアップしまっす。

ミラーサイトの場所は「C:\Users\hoge\Local Sites\サイトの名前\app\public」となっていました。

コピー元でのデータバースバックアップ

phpMyAdminはエクスポートを選択後、新しくチェックを入れるところは一か所のみでバックアップを取ることができます。

生成オプションの追加コマンド:にある

DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER コマンドを追加する

こちらにはチェックを入れておきます。

コピー先Wordpressの初期設定

Local by Flywheelでローカル環境に作成したWordpressのサブディレクトリへの移動を行います

ローカルに作成したWordpressの言語設定

Local by Flywheelで作成したばかりのWordpressは英語版となっていますので、まずはこちらを「Settings」→「General」内にある「Site Language」を変更します。最初はEnglishとなっているので中間ほどにある日本語に変更して一番下にあるSave Changesのボタンをクリックして基本言語を日本語に変更しました。

WordPressのフォルダ置き場所の変更

「設定」の中の「一般」にある「WordPress アドレス (URL)」をこれから移動するサブディレクトリに変更します。

URLの指定

index.phpの編集

サイト名 → app → Publicの中にWordpressのファイルとフォルダが入っていますので、新しくサブディレクトリとなるフォルダを作成してその中にすべて移動します。

移動したファイルの中にindex.phpがありますのでそのファイルをPublicフォルダにコピーペーストして、テキストエディタをで開きます。

ここでの作業は移動とコピーペーストがありますので、それぞれ確認しておこなってください

移動したindex.phpファイルを編集して、サブディレクトリにWordpressファイルがあることを指示します。

編集前

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );

編集後

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wpress/wp-blog-header.php' );

ドメイン変更を手助けしてくれるツールSearch and Replace for WordPress

ドメインが変更となる際にデータベース内のドメインを変換ツール「Search and Replace for WordPress Databases Script」が変えてくれる。取り扱いの際に気を付ける点がありますが、ひとつを守ればとても助かります。

Search-Replace-DB-masterのダウンロードとインストール

Database Search and Replace Script in PHP | inter.connect
Search Replace DB is a powerful tool for developers, allowing them to run a search replace against their database where ...

中ほどにあるDownload Search Replace DBを見ると、チェックボックスが三つありました。それぞれGoogle翻訳を載せておきます。

Knowledge check*
(知識チェック*)

I accept this script can be a security risk
(私はこのスクリプトがセキュリティ上のリスクになる可能性があると思います)

I understand that this script must not be left in a public facing web server
(このスクリプトは、一般向けのWebサーバーに残さないでください。)

I am a developer and I know what I’m doing!
(私は開発者であり、自分のしていることを知っています。)

それ以降には長文が並びますが要約をしますと「上の質問に正しく回答するとメールアドレスが入力できるようになり、そのあとダウンロードできます。以下プライバシーポリシー」このような感じかと思います。

名前とメールアドレスを記入、ニュースレターいりますかの問いに答えて「SUBMIT」ボタンを押すと画面が切り替わります。

記入したメールボックスにメールが届いていてダウンロードするためのリンクが張ってあります。

インポート

ファイルをアップロード

SQL (< 300MB):

Search-Replace-DB-masterの実行

http://[hostname]/[サブディレクトリ名]/Search-Replace-DB-master/

まずは最初の項目にsearch/replaceとあります。

なんの文字列を(replace)こちらには元のドメインを記入、何で置換するか(with)こちらにローカルのドメインを入力します。

次に項目databaseやtablesとありますが、変更の必要はないはずです。

  • actionsの項目で作業に入ります
  • Dry Run: テストモードで検索のみをします。
  • Live Run: 本番実行

Live Runをクリックすることでカウントダウンが始まりSQLが実行され、置換が完了します。

最後に必ず置換ツールのフォルダは消しておきましょう。ローカル環境においてある場合のリスクはわかりませんが、癖付けとしてやっておくでよいのではないでしょうか。

Web環境でそのままにして外部からアクセスされたら、一括置換される恐れがあり大変危険です。

WordPressファイルの編集

wp-config.phpの編集

無事にインポートが完了したら、wp-config.phpの編集を行います。

作成したミラーサイトの「wp-config.php」を「wp-config-old.php」など名前を変更します。

バックアップしたWordpressファイルで上書き

いよいよ、バックアップをした元サイトのWordpressのフォルダとファイルを新しくローカルに準備したミラーサイトのフォルダにコピーペーストで上書きをします。

wp-config.phpの編集

ローカルの「wp-config-old.php」からコピー元の「wp-config.php」にデータベース情報を移し替えます。

define('DB_NAME', '****');
define('DB_USER', '****');
define('DB_PASSWORD', '****');
define('DB_HOST', '****');

ミラーサイトの作成が完了したら、ローカル環境に入ってみますが、UserNameとPasswordも元サイトのものに変わっています。ログインしたらまずはパスワードを変えておきましょう。

まとめ

今回は「Wordpressをプラグインなしでローカル環境にコピーする方法を紹介します」として始めましたが、多くのサイトが「サブディレクトリ」を使用していること、ローカル環境作成ツール「Local by Flywheel」、大事なことではあったので、データベース内のドメイン置き換えを手助けしてくれる変換ツール「Search and Replace for WordPress Databases Script」と、ある程度使用するツールは限定をさせていただきました。

2019年5月現在での最善の選択となっています。なにかおすすめのツールなどがあればお気軽にコメントをください。お待ちしております。