[DB+WP]ロリポップで既存のwordpressをまるっと複製する方法

WPで作ったサイトがあり、それを複製したい。
プラグイン入れたりカスタムしまくってるお陰でテーマを移すだけじゃ済まない。
再設定がめんどくさすぎるので、じゃあ大元から全部複製してしまえ。
できるのか、できた。

環境

ロリポップ!(ライトプラン)

前置きというか概要とか

同一サーバー上で作ったサイトを複製することになった。
プラグインとか諸々頑張ってるお陰でテーマの移植だけじゃすまない。

なので、
FTP上でWPのディレクトリを複製し、それ用にDBも複製する。
複製するだけじゃダメなのでそれぞれを紐付けるように設定する。

参考

ざっとした全体の流れ

  1. ロリポップの管理画面でWPを新規インストール
  2. FTP上でWPディレクトリを複製
  3. DBを複製

なんとなくでやってやらかすと全てが終わってしまうので、内容理解しなきゃヤバいやつ。
一旦違うところで試してみるとかした方がいい。絶対いい。

管理画面でWPを新規インストール

別に必須じゃないんだけど、念のため。
ロリポップの管理画面ではWPとかをインストールしてくれる上、ログも残してくれる。
今回複製したやつが次回以降のインストールで上書きされたら困るので、予防の意味でも一旦インストールしてしまう。
履歴の活用もできるしね。
ディレクトリは複製先を指定する。

インストールが完了したらFTP接続からディレクトリの中身を全部削除。
これでWPインストールの履歴とDBのテーブルが残る。

WPディレクトリの複製

FTPクライアントでもって一旦PCにDLして、
複製先のディレクトリにアップしてもいいんだけど、
それだとディレクトリとかファイルの属性設定が引き継げるかどうかが怪しい。
「ロリポップ!FTP」でPCを介さずにまるっと複製する。

  1. 複製先のディレクトリを作成(前項で残してたらそれを使う)
  2. 複製元のディレクトリの中身を小分けにコピー
  3. 「ファイルサイズがでかい」とか出たら中身を更に分けてコピー

「ロリポップ!FTP」では1度にコピーできる容量に上限があるようで、
サイトの総容量が少なければいいんだけど、
・記事を幾つか書いちゃったり
・プラグイン入れまくってたり
・テーマに画像とか動画とか使いまくってたり
いろんな要因から上限を超える可能性がある。
「とりあえずぶっ込んでエラーが出たらそこをコピーし直せばいいや」ができればいいんだけど、
どこで躓いたかは自分で探るしかない。
そうなると面倒が増えてしまう。
だから把握できる範囲で小分けにしてコピーしまくる。

心が折れた時点で丸々コピーできない事が確定する。
単純作業だけど一番めんどくさいかもしれない。
そういうことができるクライアントがあれば使えばいいんだけど
今回は手動でがんばれた。

DBを複製

「phpMyAdmin」を弄ることになる。
慣れないで触るとすっごい怖い。

今回、サーバーのプランによる制限でデータベースを新規作成できないが、テーブルは増やせる。
なのでそれを踏まえ、ここでの流れは以下の通り。

  1. 複製したいWPのテーブルデータをエクスポート(.sqlファイル)する
  2. エクスポートした.sqlファイルを編集
  3. 編集した.sqlファイルをインポートする

.sqlファイルのエクスポート

ロリポップの管理画面から、
「サーバーの管理・設定」>「データベース」
「サーバー」「ユーザー名」「パスワード」を確認して、
「phpMyAdminを開く」からログイン。
「phpMyAdmin」の左側のツリーからデータベース「LA********-******」を選択。
「構造」タブが表示されるので、コピーしたいwpのテーブルが入ってることを確認し、「エクスポート」タブをクリック。
「データベース “LA********-******” からテーブルをエクスポート」と表示されていることを確認。

項目名 設定
エクスポート方法 詳細
テーブル 該当のWP接頭語のテーブルを全部指定
※ShiftとかCtrlで複数指定
出力 無視
フォーマット 無視
フォーマット特有のオプション 無視
生成オプション 「CREATE DATABASE / USE コマンドを追加する」
「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT コマンドを追加する」
にチェック。
項目内の全部のチェックボックスをチェックしてしまえばいい。
Data creation options 無視
エンコーディングへの変換 無視

「実行」をクリックすると.sqlファイルがDLされる。

要はエクスポートの詳細設定でテーブルを指定してフォーマットのオプション指定してエクスポート。

.sqlファイルの編集

ロリポップの管理画面、「WordPress簡単インストール」で

  • 複製先に使用するテーブル接頭辞(wp*_)
  • 複製先のディレクトリ(ドメイン)

を確認しておく。

先程DLした.sqlファイルを開き、

  • 接頭辞
  • 複製元のURL(http://から始まってるやつ。相対パスは無視でOK)

を複製先のものに書き換える。
両方とも置換でやったほうが抜けがないのでオススメ。
変更したら上書き保存。

.sqlファイルのインポート

「phpMyAdmin」の「インポート」を開き、
「インポートするファイル」で編集したファイルを指定。
設定はすべて触らずに「実行」をクリック。
インポートが完了してもテーブルがそのままの場合、再読込するなり一旦ログアウトして入り直せば更新される。

インポート時にエラーが出た場合、
エクスポート時の設定が間違ってる可能性がある。
上書きできる状態にしておくこと。

インポートが完了したら一応テーブルを覗いて、
URLがちゃんと変わってるかどうか確認。

wp-config.phpの編集

WPはここの設定で読み込んでくるDBとかテーブルを指定してる。
今回は接頭辞だけ変わってるのでここを弄る。

中腹から下くらいにある「$table_prefix = ‘wp*_’;」を、DBで指定したそれに変更する。
基本的にこの1箇所だけだけど、キャッシュとかのプラグインでurl書かれてる場合はそこも変更する。

編集が済んだらftpで上書き。
属性で「400」とかになってて上書きできない場合があるので注意。
属性を変更して上書き。

WPの設定

これまでwpを複製し、DBを複製し、設定でそれらを紐付け、URLも変更した。
システムの根っこの部分の設定が終わったので、
次は管理画面にアクセスする。
複製先のアドレスでの管理画面を開く。
アカウントは複製元のものと同様。

インデックス除外

とりあえずまんまコピーしたサイトが表に出るのはよろしくないので、
設定で検索エンジンのインデックスを外す。

リンクの確認

見た目は普通だけどリンクの設定が壊れてる可能性がある。
リンクURLはちゃんと変更できてて、トップページも管理画面も見れてるのに、
「投稿ページ」「固定ページ」が404になって表示されなかった。

パーマリンク設定がうまく動作してないせいだったようで、
「カスタム構造」になってるのを一度「基本」とかに変えて、
また最初の設定にすればちゃんと動作するようになった。

コメント

タイトルとURLをコピーしました