同じサーバー内でWordpressのサイトをコピーして別のサイトを作る方法

さくらのレンタルサーバーでやってみました。Wordpressは4.8です。
短時間で済む簡単な作業ですが、プラグインで「Wordpress HTTPS」を使っている場合は、ひと手間必要ですので注意してください。
それでは、手順の説明です。

1.コンパネから新しいデータベースを作成します。
すでに、データベースユーザーは作成してあると思うので、データベース名を指定するだけで完了です。

2.その「データベースの設定画面」内の「管理ツール ログイン」をクリックして、phpMyadminへログインします。

3.左サイドメニューから、コピー元のデータベースをクリックし、画面上部の「操作」タブをクリックします。

4.下のような画面が表示されますので、
 ・コピー先のデータベース名
 ・「コピーの前にCREATE DATABASEする」のチェックをオフ
を指定した後、「実行」をクリックします。サイトの規模にもよりますが、10秒位で終わります。

wp_site_copy.png

5.phpMyAdminへログインしているついでに、コピー先のデータベースに対して、いくつかの変更作業を行います。
(1)左サイドの「データベース」というリストからコピー先のデータベースを選択します。
(2)左サイドのテーブル一覧からwp_optionsテーブルをクリックします。(テーブル名のアンダーバーより前の部分は、コピー元のwp-configの設定で他のものになっているかもしれません。)
(3)option_nameカラムの値が siteurl(管理画面のURL)と home(公開用のURL)になっている2つのレコードについて、えんぴつアイコンをクリックして、 option_valueカラムの値を新しいWordpress用に書き換えます。末尾に / は不要です。
(4)これがこの記事のキモなのですが、コピー元でWordpress HTTPSプラグインを使っている場合は、「>」を数回押して、option_nameカラムの値が「 wordpress-https_ssl_host 」となっているレコードをさがして、そのレコードの option_value カラムの値を(3)のsiteurl で指定したフォルダと同じにします。こちらは末尾に / が必要です。
この(4)の作業を忘れると、管理画面にアクセスした場合に「404 ページが見つかりません」などのエラーとなり管理画面にアクセスできません。

6.つぎに、Wordpressのファイルを丸ごとコピーします。
FTPでの作業はダウンロード&アップロードでもよいのですが、SSHの操作に慣れているひとは、SSHでコマンドを実行したほうが早く終わります。
以下の例は、DocumentRoot直下にwp1というWordpressフォルダーがあり、それをwp2としてコピーする場合の例です。
 ・SSHでログイン
 ・cd www
 ・cp -pR wp1 wp2

7.コピー先のWordpressフォルダ下のいくつかのファイルを修正します。
・wp-config.php ←さくらの場合はDB_NAMEを変更するだけでOK
・.htaccess ←コピー元のフォルダ名があったらそれをコピー先のフォルダ名に変更
・index.php ←コピー元のフォルダ名があったらそれをコピー先のフォルダ名に変更

8.テーマのテンプレートの修正や、Wordpressの管理画面からデータベースのプラグインをインストールして、データベース内にあるコピー元のフォルダ名がセットされている部分を、コピー先のフォルダ名に置換...などの作業を実施する。

以上です。

ぐっどらっこ