最近知ったVCCWでローカルのワードプレス開発環境を導入する方法を紹介します。
これまでは、ローカルでワードプレスの開発をする時には、MAMPを使うことが多かったのですが、最近ではVCCWを使った開発環境が使い易いと耳にする機会も増えたので、自分でもどんなものか試してみたいと思いました。

現在のバージョンはV3のようですね。
以前のバージョンは触ってなかったのですが、軽量化されたり、新しい機能が追加されて改善されたりとかで、とてもよくなっているようです。
目次
1.導入前の準備
VCCWを導入するには、いくつか必要なものがありますので、揃えていきます。
VirtualBox
パソコンのローカル環境で仮装環境を構築するためのオープンソースのソフトウェア。リンク先からダウンロード可。
https://www.virtualbox.org/
Vagrant
仮装環境を構築するのに役立つツール。
https://www.vagrantup.com/
vagrant-hostsupdater plugin
面倒なホストの設定を自動で行ってくれるVagrantのプラグイン。オプション
$ vagrant plugin install vagrant-hostsupdater
vagrant box
仮装環境の基本ファイル
$ vagrant box add vccw-team/xenial64
VCCW
VCCWのzipファイルをダウンロード
http://vccw.cc/
gitからコマンドラインでもクローンできるみたいですが、余計なファイルが入ってしまうので,zipファイルをダウンロードする方がおすすめのようです。
2.開発環境の構築
必要なツールが揃ったら、いよいよワードプレスの環境を導入します。
まずはVCCWのフォルダを解凍して、作業するフォルダにコピーします。
テストでは、作業用のフォルダとしてvccwtestというフォルダを作成して、その中に先ほど解凍したvccwというフオルダを置きます。

ターミナルでvccwのフォルダに移動
以下のコマンドを実行すると、ローカルにワードプレスがインストールされます。(少し時間がかかります)
$ vagrant up
初期設定そのままで実行すると、vccw内に新たにwordpressというをフォルダが作成されてます。
ここにワードプレスの関連ファイルがインストールされます。
セットアップが完了すると、以下のいずれかのリンクより、ローカルにインストールされたワードプレスを確認することができます。
管理画面へのログインは、通常のワードプレスと同様にlogin.phpよりアクセスできます。
デフォルトではユーザー、パスワード共に「admin」に設定されています。
http://vccw.dev/
http://192.168.33.10/
3.初期設定カスタマイズ
ワードプレスをインストールした後に、言語の設定やプラグインのインストールなどの作業をしなくてもいいように、いろいろと設定をすることができます。
オリジナルの設定を利用するには、provision/default.ymlファイルをvccwの中にコピペして、site.ymlというファイル名に変更して各種設定を書き込んでいきます。
コマンドラインでは、次のように入れると実行してくれます。
$ cp provision/default.yml site.yml
今回設定してみた項目
ホスト名:vccw.test
言語:日本語
サイトタイトル:Test Site Title
メールアドレス:test@example.com
プラグイン:Contact Form 7,All in One SEO Pack,Show Current Template
# encoding: utf-8
# vim: ft=ruby expandtab shiftwidth=2 tabstop=2
#
# General Settings
#
wp_box: vccw-team/xenial64
#
# Virtual Machine Settings
#
memory: 1024
cpus: 1
#
# Network Settings
#
hostname: vccw.test
ip: 192.168.33.10
#
# WordPress Settings
#
version: latest
lang: ja
title: Test Site Title
multisite: false
rewrite_structure: /archives/%post_id%
#
# WordPress Path
#
wp_siteurl: '' # Path to the WP_SITEURL like "wp"
wp_home: '' # Path to the WP_HOME like "wp"
#
# WordPress User
#
admin_user: admin
admin_pass: admin
admin_email: test@example.com
#
# WordPress Database
#
db_prefix: wp_
db_host: localhost
db_name: wordpress
db_user: wordpress
db_pass: wordpress
#
# WordPress Default Plugins
# Plugin's slug or url to the plugin's slug.
#
plugins: ["contact-form-7","all-in-one-seo-pack","show-current-template"]
#
# WordPress Default Theme
# Theme's slug or url to the theme's .zip.
#
theme: ''
#
# WordPress Options
#
options:
blogdescription: This is a test Blogg
#
# WordPress Multisite Options
#
multisite_options: {}
#
# The values of wp-config.php
#
force_ssl_admin: false
wp_debug: true
savequeries: false
#
# Addtional PHP code in the wp-config.php
#
extra_wp_config: |
// Addtional PHP code in the wp-config.php
// These lines are inserted by VCCW.
// You can place addtional PHP code here!
#
# Theme unit testing
#
theme_unit_test: false
theme_unit_test_uri: https://raw.githubusercontent.com/WPTRT/theme-unit-test/master/themeunittestdata.wordpress.xml
# theme_unit_test_uri: https://raw.githubusercontent.com/jawordpressorg/theme-test-data-ja/master/wordpress-theme-test-date-ja.xml
#
# DB will be reset when provision
#
reset_db_on_provision: true
#
# RubyGems
#
ruby_gems:
- bundler
- wordmove
mailcatcher: true
wp_i18n_tools: true
#
# NPM modules
#
npms: []
#
# composer
#
composers:
- phpunit/phpunit:5.6
- squizlabs/php_codesniffer:*
- wp-coding-standards/wpcs:*
# - phpmd/phpmd:*
# - sebastian/phpcpd:*
# - phploc/phploc:*
# - phing/phing:*
#
# wp-cli package commands
#
wp_cli_packages:
- vccw/wp-cli-scaffold-movefile:@stable
#
# Linked Clone for Vagrant v1.8
#
linked_clone: false
#
# Advanced Settings
#
#
# PHP ini values
#
php_ini:
date.timezone: UTC
default_charset: UTF-8
mbstring.language: neutral
mbstring.internal_encoding: UTF-8
post_max_size: 1024M # Same with VVV
short_open_tag: Off
session.save_path: /tmp
upload_max_filesize: 1024M # Same with VVV
xdebug.remote_enable: true
xdebug.remote_host: 127.0.0.1
xdebug.remote_port: 9000
xdebug.profiler_enable: true
xdebug.idekey: VCCWDEBUG
xdebug.remote_connect_back: true
xdebug.remote_autostart: true
synced_folder: ../src
document_root: /var/www/html
すでに、開発環境を導入した後に設定ファイルに変更を加えた後の場合には、vagrant upではなく、
$ vagrant reload —provision
のコマンドで、新しい設定を更新して適用することができます。
設定をもっと活用してどんどん便利に開発環境を整えていきたいですね。
