[VCCW] WP-CLI で VCCW 3 環境をかんたん構築する

VCCW のバージョンが上がっているので、導入からあらためて復習。

以前に触った記事はこちらからたどれます。

VCCW | deadwood

本稿の VCCW と依存するパッケージのバージョンは以下の通りです。

vagrant / 1.9.2
virtualbox / 5.1.16-113841
VCCW / 3.1.4
WP-CLI / 1.1.0
Composer / 1.4.1
scaffold-vccw / 1.3.0

なお以降の記事中において、% ではじまるコマンドは Host OS (macOS) で、$ ではじまるコマンドは Guest OS (Ubuntu) で実行されていることを示しています。

Installation

公式サイトの Getting Started に沿って進めます。

VCCW – A WordPress development environment.

VirtualBox と Vagrant

まず VirtualBox と Vagrant をインストールします。

Vagrant: + VirtualBox で仮想マシンを作成する | deadwood

さらに vagrant-hostsupdater plugin をインストールしておきます。

Vagrant: vagrant-hostsupdater で /etc/hosts を書き換える | deadwood

% vagrant plugin install vagrant-hostsupdater

さらに VCCW 用にカスタマイズされた vagrant box をダウンロードしておきましょう。

% vagrant box add vccw-team/xenial64

wp scaffold vccw

以前のバージョンは git clone して環境を作っていましたが、v3 は .zip ダウンロードになっているとのこと。

WordPress 用の Vagrant 環境 VCCW を利用する | deadwood

WP-CLI コマンドの wp scaffold vccw でこれをすませましょう。
(.zip を利用する場合は、以下の手順は不要です。)

vccw-team/scaffold-vccw: WP-CLI command that generates a new VCCW.

WP-CLI がインストールされていない場合は、brew でインストールできます。

% brew install homebrew/php/wp-cli

wp package install vccw/scaffold-vccw:@stable でインストールが完了します。

% wp package install vccw/scaffold-vccw:@stable
Installing package vccw/scaffold-vccw (@stable)
Updating /Users/****/.wp-cli/packages/composer.json to require the package...
Using Composer to install the package...
---
Loading composer repositories with package information
Updating dependencies
Resolving dependencies through SAT
Dependency resolution completed in 0.061 seconds
Analyzed 4212 packages to resolve dependencies
Analyzed 119701 rules to resolve dependencies
Package operations: 1 install, 0 updates, 0 removals
Installs: vccw/scaffold-vccw:1.3.0
 - Installing vccw/scaffold-vccw (1.3.0)
Writing lock file
Generating autoload files
---
Success: Package installed.

インストール済の場合は、下記でアップデートできます。

% wp package update

Fatal error: Allowed memory size of x bytes exhausted が発生する場合

実行時にメモリ不足のエラーが発生しました。

% wp package install vccw/scaffold-vccw:@stable
Installing package vccw/scaffold-vccw (@stable)
Updating /Users/****/.wp-cli/packages/composer.json to require the package...
Using Composer to install the package...
---
Loading composer repositories with package information
Updating dependencies
PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /usr/local/Cellar/wp-cli/1.1.0/vendor/composer/composer/src/Composer/DependencyResolver/RuleSetGenerator.php on line 126
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /usr/local/Cellar/wp-cli/1.1.0/vendor/composer/composer/src/Composer/DependencyResolver/RuleSetGenerator.php on line 126

php.ini の場所を探します。

% php --ini
Configuration File (php.ini) Path: /usr/local/etc/php/7.1
Loaded Configuration File:         /usr/local/etc/php/7.1/php.ini
Scan for additional .ini files in: /usr/local/etc/php/7.1/conf.d
Additional .ini files parsed:      (none)

memory_limit = 128M でしたので、これを増やします。

/usr/local/etc/php/7.1/php.ini
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 512M

以上でインストールを完了することができました。

追記:2017/03/23
実行時に指定する方法があるようです。

WP-CLI でメモリ不足のエラーが出る時の対処法 – Qiita

Usage

インストールが完了しましたので、早速プロジェクトを開始してみましょう。

% wp scaffold vccw wordpress.dev --lang=ja
Success: Generated. Run `vagrant up`.

wordpress.dev というディレクトリにファイルが展開されました。

.
├── LICENSE
├── README.md
├── Vagrantfile
├── ansible.cfg
├── provision
│   ├── default.yml
│   ├── playbook.yml
│   └── playbooks
│       ├── commands.yml
│       ├── middleware.yml
│       ├── templates
│       │   ├── composer.json
│       │   ├── extra-wp-config.php
│       │   ├── guest-wp-cli-config.yml
│       │   ├── index.php
│       │   ├── mailcatcher.service
│       │   ├── multisite-htaccess
│       │   ├── site.conf
│       │   └── vccw.sh
│       └── wordpress.yml
└── site.yml

既に site.yml が生成されていますので、ディレクトリに移動して、vagrant up します。

% cd wordpress.dev
% vagrant up

以上で完了です。

.zip の場合

.zip を展開した方は、vccw というディレクトリが作られたはずです。
provision/default.yml を元に site.yml を作成、編集が必要になります。

wp scaffold vccw –update でバージョンアップに対応する

wp scaffold vccw を利用している場合、--update オプション付きの実行で VCCW をバージョンアップできます。
この例の場合は、下記で関連ファイルがバージョンアップされます。

% wp scaffold vccw wordpress.dev --update

補遺

v3

wp scaffold vccw

WP-CLI

v2

v1

その他

MailCatcher

StaticPress

改ざんのチェック