
2つのWordpressの出力先を入れ替える移転作業の流れ
一つのサーバー内にある2つのWordpressの出力先をそれぞれ入れ替える移転作業の詳細です。
もともとTOPの区画にあるデータは別の区画に出力するようにし、もう一つのデータはTOPディレクトリで表示するようにします。
index.phpと.htaccessをきちんと落ち着いて設定していけば、バッティングせずに表示できるようになります。
今回の移転作業の目的
まず今回の出力先入れ替えによる移転作業の概略をご紹介します。
一つのサーバー内に2つのWordpressサイト構成があります。
一つはTOPディレクトリに直接配置され、もう一つは後から作ったディレクトリ内に構成されています。
TOPの方を「Aデータ」、別ディレクトリ内にある方を「Bデータ」と呼びますね。
今回はAデータの出力先をまた別のディレクトリに移動させ、Bデータの出力先をTOPディレクトリに移動させるのが目的です。
お互いの出力先を切り替える
両方とも構成ファイルの位置は変更せず、お互いの出力先のみを変えて移動させようというものです。
移転後のAデータURLには当然別ディレクトリ名が付きますし、Bデータもそれまで付いていたディレクトリ名付かないURLになります。
旧AデータをBにリニューアルしつつ、Aも残す
具体的に言うとAデータが旧デザインサイトで、Bデータが新しく作ったリニューアルサイトデータです。
Bデータをこれまでテスト環境として使っていた訳ですね。
Bデータは非公開だったのでURLが変わっても問題はありませんが、本来消すはずのAデータも残す事になり、URLが変わっても構わない仕様です。
Aデータ(旧データ)の出力先変更
では早速移転作業の流れを紹介していきます。
まずはAデータを別ディレクトリへ移動させる事から始めます。
Bデータよりも先にAデータを移さないと、Aデータの移転操作ができなくなるからですね。
ディレクトリ作成
「predata」の名前(ここは自由)で新しいディレクトリをサーバーに作成します。
このpredataがURLに追記される事になります。
ローカル上にも同じようにディレクトリを作っておきましょう。中にファイルを入れる事になりますので。
Aデータの出力先変更
次にAデータのWordpressの一般・設定で、サイトURLをhttp://●●●●.co.jp/predata/ へ変更します。
再ログインする必要があればログインし直して、パーマリンクの保存を掛けましょう。
index.phpの読込先変更
TOPディレクトリにあるAデータのindex.phpファイルをダウンロードして以下の様に書き換えます。
require( dirname( __FILE__ ) . '/../wp-blog-header.php' );
一段上のwp-blog-header.phpを読むので、「/../」と書く事に注意です。
次に同じ位置にある.htaccessファイルをダウンロードして、中身のファイルURLを「predata/index.php」とします。
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^predata/index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . predata/index.php [L] </IfModule>
上記の様に2か所変更しましょう。
predataディレクトリの中にこのindex.phpファイルとhtaccessをUPします。
表示確認
http://●●●●.co.jp/predata/でWordpressデータが表示されているかどうか確認しましょう。
ページの表示はもちろん、ログインできるかどうかも確認する必要があります。
Bデータ(リニューアルデータ)の出力先変更
Aデータを移したら次にBデータの切り替えです。
Bデータの入った区画は「renew」としています。
wp-config.phpの更新
renewの中にあるwp-config.php をダウンロードして、以下のコードを追記します。
define('WP_SITEURL', 'http://●●●●.co.jp/renew/');
入れる位置に注意
入れる位置は下の様なコメント欄があるので、そこより上に入れるようにしましょう。
/* 編集が必要なのはここまでです ! WordPress でのパブリッシングをお楽しみください。 */
更新したらwp-config.phpを元のところに上書きします。
Bデータの出力先の変更
リニューアルのWordpress管理画面へログインします。
Wordpressの一般・設定でURLをhttp://●●●●.co.jp/ へ変更しましょう。
再ログインする必要があればログインし直して、パーマリンクの保存を掛けましょう。
index.phpの読込先変更
renew区画内のindex.phpファイルをダウンロードして、今度は「/renew/wp-blog-header.php」と書き換えます。
require( dirname( __FILE__ ) . '/renew/wp-blog-header.php' );
このindex.phpファイルをTOPディレクトリにUPします。
TOPディレクトリに元々ある.htaccessには変更は加えません。
B区画内の.htaccess
renewディレクトリ内の.htaccessには、RewriteBase /renew/の記述が入っているかを確認しましょう。
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase /renew/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /renew/index.php [L] </IfModule>
表示確認
これでrenew区画にあるWordpressのBデータがTOPに表示され、今までのAデータはpredata区画の中に映ります。
出力先を変えているだけなので、TOPディレクトリにAデータの構成ファイルがあってもバッティングしません。
ポイント
Aデータの中で書き替えるのは、index.phpファイルと.htaccessです。
Bデータの中で書き替えるのは、wp-config.phpとindex.phpです。
今回の経緯
元はTOPディレクトリにWordpressサイトが構成されている状態です。
このサイトを新しくリニューアルしようという事になりました。
そこでリニューアルデータ作成用のWordpressをインストールして欲しいというのがそもそもの依頼です。
当初はインストールと切り替えのみ
新しくディレクトリを作ってそこにWordpressをインストールして提供しました。
その構成内でリニューアルデータを作ってもらいます(制作するのは別業者です)。
完成したら出力先をTOPディレクトリに変更すれば完成という運びでいました。
旧データの一部を残してほしいという追加依頼
途中でクライアントから「このコンテンツだけ残してほしい」との追加依頼がきます。
元のデザインのままで構わないので、リニューアルされてもそのコンテンツだけは閲覧できるようにして欲しいとの事。
そもそもリニューアルするのですから、元サイトは一切見れなくなってOKと思っていましたので予想外です。
両方のWordpressデータを丸ごと残さなければならない
結果方針転換で、旧データも丸ごと残さないといけません。
Wordpressはその構造上、部分コンテンツのみ残すという訳にはいきませんからね。
残したいコンテンツ部分以外のリンクは全てリニューアルサイトの方に飛ぶように、リンク修正の必要もあります。
旧データの方はURLが変わってしまっても、観れれば問題はないとの事です。
間に入っている仲介業者が不安
実はこの案件、私がクライアントと直接やり取りをしているのではありません。
間に仲介業者がおり、サイトをリニューアルする業者も別におります。
リニューアル用のWordpressのインストールと、最後の切り替え作業のみをその仲介業者が私に投げてきたのです。
なぜ制作業者がいるのにインストールと切り替えを別の人に依頼するのか不思議ですけど。
なのでやり取りは全て、この仲介業者の担当者と進めていました。
仲介業者が詳しくない
20年やっているとわかりますが、仲介業者は仲介する事が仕事なので、中身はよくわかっていない人が多いです。
この仲介業者も多分に漏れずでした。まあ無理もないのですが。
今回互いの出力先を変える対処を本当に理解できているのか、私の不安がぬぐえません。
互いの出力先入れ替えは初めて
特に今回の様な出力先の入れ替えは、私もこれまでやった事がないケースです。
旧データも新データも私が作ったものではない事もありますし。
ですので100%できる保証はありませんと伝えるのですが、そこには反応しないのです。
中身より説明が重要な仲介業者
直前で仲介業者の社長(担当者は別)にZOOMで打ち合わせしたいと言われてZOOM面談しました。
案の定「クライアントへの言い回し・説明」を気にするばかりです。
正直うんざりですが、こちらは自分の職務を全うする他ありません。
今回の結果
実際に作業を行った結果、無事に両方のデータを共存させる事ができました。
ただ切り替え時にAデータのWordpress管理画面にパーマリンク設定が存在せず、押せないまま進んでいます。
そのせいか、AデータのWordpress管理画面へ現在ログインができない状態です。
しばらくするとAデータの管理画面に入れた
しばらく時間が経過したのちに今一度入ってみるとログインする事ができました。
キャッシュの問題だったのか、仲介業者を通して制作業者に通達したからなのか…。そのあたりは不明です。
ポイント
Aデータのログイン画面URLは以前のまま、●●●.co.jp/wp-login.phpです。
Aデータの管理画面URLは、●●●.co.jp/wp-admin/となります。
Bデータのログイン画面も以前のまま、●●●.co.jp/renew/wp-login.phpです。
Bデータの管理画面URLは、●●●.co.jp/renew/wp-admin/となります。
出力先こそ変更しましたが、管理画面へのログインURLなどは以前のままである事に注意しましょう。