30分で作る、WordPressのテスト環境


サイトを大幅に変更するときはテスト環境で試してから本番に適用したいですよね。
ソース、データをローカルに持ってくる方法もありますが、手っ取り早く本番のサーバ上で動かしたいときは紹介する方法を試してみてください。

この記事の対象になる条件

  • 独自ドメインでWordPressを運用している
  • WordPress稼働サーバのroot権限有り
  • それなりに apache がわかる


テスト用のサブドメインを設定する(5分)

「確認のしやすさ」を考えるとサブドメイン(www.example.com なら www 部分)を設定するのが一番です。今回は、サブドメインに test を付けて「test.yourdomain.xx」のようなURLでテスト用WordPressが運用できるようにしてみます。DNSの更新は、時間がかかるので最初にやっておきましょう。

ドメインを管理しているサービスでサブドメインのAレコードを設定

サブドメイン(test)とサーバのIPアドレスを関連付けします。有名どころなサービスは↓から設定できます。

VALUE DOMAIN
ホスト名:test
ターゲット:サーバのIPアドレス
タイプ:A
FAQ

ムームードメイン
サブドメイン:test
種別:A
内容:サーバのIPアドレス
Q.Aレコード等を設定可能ですか?

お名前.com
ホスト名:test
IPアドレス:サーバのIPアドレス
ドメインnaviご利用ガイド

Databaseの複製などなど(3分)

DBを使いまわしてしまうとテーマ変更やテスト投稿したとき本番に影響してしまうので別DBを作ります。

テスト用DBを作る

サーバへログインして以下のコマンドを実行。

mysqldump -u WordPress用DBのユーザ名 -p -r dbcopy.sql -l WordPress用Database名
# ↑まで入力してEnter
Enter password: WordPress用DBのパスワード
# ↑ dbcopy.sql が作成されます。
mysql -u root -p
# ↑ mysql へログイン。DBを作成可能な権限でログインします。
mysql> create database テスト用DB名
mysql> use テスト用DB名
mysql> \. dbcopy.sql
# ↑ テスト用DBにデータ流し込み

テスト用DBへのアクセス設定、基本URLの設定

mysql> grant all privileges on テスト用DB名.* to WordPress用DBのユーザ名@localhost
# ↑ テスト用DBの操作権限を与えます
mysql> update wp_options set option_value = 'テスト用URL' where option_name in ('home','siteurl');
# ↑ URLをテスト用にします。例:http://test.example.com 
mysql> exit

WordPressのソースをコピー(1分)

WordPress設置先を /var/www/wordpress と仮定します。違う場合は、適宜置き換えて実行してください。

cd /var/www/
cp -ra wordpress test_wordpress

これで /var/www/test_wordpress がテスト用WordPressのディレクトリになります。

テスト用WordPress設定(1分)

/var/www/test_wordpress を編集します。

/** WordPress のデータベース名 */
define('DB_NAME', 'テスト用DB名');

apache設定(20分)

バーチャルホストを使います。まだバーチャルホスト未設定な場合は、テスト用の設定を追加する前に、本番のドメイン単体で設定してちゃんと動いていることを確認してからやりましょう。(そうじゃないとトラブったときの原因切り分けが面倒です)

なお、↓の設定例では、テスト環境を非公開にしたいのでBasic認証を使ってます。パスワードの作り方わからん、って人は、こちらBASIC認証用 パスワード暗号化ツール にパスワード生成してくれるツールがありますので自己責任でどうぞ。より secure に使いたい人は ssl 経由でアクセスすると良いです。(面倒なので設定例は省きますが)

バーチャルホスト設定例

NameVirtualHost *:80
# 以下本番サイト用 ( example.com )
<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    
    ErrorLog logs/error_log
    CustomLog logs/access_log combined
    
    DocumentRoot "/var/www/wordpress"

    <Directory "/var/www/wordpress">
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

# 以下テスト用 ( test.example.com )
<VirtualHost *:80>
    ServerName test.example.com
    
    ErrorLog logs/test-error_log
    CustomLog logs/test-access_log combined
    
    DocumentRoot "/var/www/test_wordpress"

    <Directory "/var/www/test_wordpress">
        Options FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
        
        # 以下Basic認証
        AuthType Basic
        AuthName "Secret Zone"
        AuthUserFile /etc/httpd/.htpasswd
        Require valid-user

    </Directory>
</VirtualHost>

設定が終わったら反映

# CentOS
/etc/init.d/httpd restart

#Debian, Ubuntu
/etc/init.d/apache2 restart

動作確認

ブラウザで http://test.あなたのドメイン/ へアクセスしてテスト用記事を投稿します。
テスト環境にだけ反映されてたら成功です。

以上、合計30分で出来上がり!

apache設定はちょっと慣れてないと20分じゃ無理がある気がするのと、DNSの反映30分で終わるのか?など突っ込みどころ満載です。

Tag  

コメントを残す

メールアドレスが公開されることはありません。

Top