
ファイルは共通でデータベースだけ変えてWordPressのテストサイトを作る
テスト環境を作りたいのは、linux上のサブディレクトリ型マルチサイトです。同じサーバー上にテストサイトを作りました。
ソースコードをいじらないサイトなので、データベースだけ分けたかったのです。
しかし残念ながら、いくつかのファイルはテスト用に用意する必要がありました。
テストサイトのURLはtestのついたサブドメインにします。
- 本番URL:altenergy.co.jp
- テストURL:test.altenergy.co.jp
- サーバーのIP:123.456.789.012
サブディレクトリ型なので、
altenergy.co.jp
altenergy.co.jp/site1
altenergy.co.jp/site2
のように、複数のサイトがあります。
1.ウェブサーバーにサブドメインのサイトを作る
altenergy.co.jpのDNSレコードを追加
1 |
a test 123.456.789.012 |
httpd.confにバーチャルホストを追加
1 2 3 4 5 6 7 8 9 10 11 12 |
<VirtualHost *:80> ServerAdmin system@altenergy.co.jp DocumentRoot /var/www/test ServerName test.altenergy.co.jp <Files "xmlrpc.php"> order deny,allow deny from all </Files> <Directory "/var/www/test"> AllowOverride All </Directory> </VirtualHost> |
ウェブサーバーを再起動
1 |
service httpd restart |
2.テスト用のデータベースを作成
create database文でも、phpMyAdminからのデータベース作成でも。
3.ファイルを本番からリンク
アップロードした画像ファイルやプラグインやテーマはそのまま使いたい。
というかなるべくファイルは増やしたくない。
- 本番のDocumentRoot:/var/www/honban
- テストのDocumentRoot:/var/www/test
1 2 |
ln -s /var/www/honban/wp-includes /var/www/test/wp-includes ln -s /var/www/honban/wp-content /var/www/test/wp-content |
※ リンクを削除するとき
1 2 3 |
unlink /var/www/test/wp-includes #cd /var/www/test でテストのディレクトリに移動して相対パスで削除するときは unlink ./wp-includes |
4.ファイルをコピー
/var/www/honban 直下のファイル
/var/www/honban/wp-admin 全て
wp-adminをリンクにすると、ダッシュボードに入れずに本番に転送されます。
あまり量もないので、FTPクライアントでローカルからファイルをアップロード。
コマンドでコピーしたときは、ウェブサーバーやFTPソフトからアクセスできるパーミッションに変えるのを忘れずに。
1 2 3 |
cp /var/www/honban/wp-admin /var/www/test/wp-admin chmod 777 /var/www/test/wp-admin #所有者やグループを変更して775でもいいんですけどね……。 |
5.データベースをコピー
同じサーバーにあるデータベースなので、phpMyAdminでできます。
本番DBを選択
↓
「操作」タブ
↓
「データベースのコピー先:」にテストDB名を入力
構造とデータ を選択
コピーの前に CREATE DATABASE する をチェック
DROP TABLE / DROP VIEW を追加する をチェック
AUTO_INCREMENT 値を追加する をチェック
↓
実行
6.URLをテスト用に書き換え
/wp-config.php
1 2 3 4 5 |
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** // /** WordPress のためのデータベース名 */ // 以下の、DB設定 define('DOMAIN_CURRENT_SITE', 'test.altenergy.co.jp'); |
以下のテーブルの、URLが書いてあるフィールドをすべてテスト用のtest.がついたURLに書き換える
・wp_options、wp_[数字]_options ※マルチサイトの数だけ
・wp_blogs
・wp_site
サブディレクトリ型のマルチサイトなのでこうなります。サブドメイン型のときは下のリンクを。
※5と6をコマンドで行う方法はこちらにあります。別のサーバーにDBがあるとき、データ量が多くてphpMyAdminが止まるとき、マルチサイトが多くてURLの書き換えが面倒なときなどはこちら。参考SQL文もあります。
「データベースが大きくて画面からインポート&エクスポートしきれないときに限らず、これがおすすめ」から。
※サブドメイン型のマルチサイトのURL書き換え箇所もここにあります。
7.アクセス制限をかける
/.htaccessにベーシック認証やIPアドレス制限を追記