WordPressをVagrant環境にらくらくインストールする。 - VCCW

## 追記（2016年11月）

VCCWの最新情報を掲載させる感じで更新しました。

- VCCW v3がリリースされました。  
先月に気付いてこの記事のアップデートの必要性を感じたきっかけです。（まだベータ版？）
詳しいことは次の記事をごらんください。  
[VCCW v3での変更点と新機能まとめ](http://qiita.com/miya0001/items/041e9363ff81695a2251)  
Boxサイズが小さくなったり、起動が早くなったりうれしいですね！（こなみかん）
ChefがAnsibleになったり、PHP7系だったり、NodeJSがv6系になってたり。順当なアップデートなんですかね（素人感しかない感想）
<br>  
- VCCWをインストールするためのWP-CLIのプラグインがリリースされました。  
詳しいことは次の記事をごらんください。   
[WP-CLIでVCCW環境をほいほい作る](http://qiita.com/miya0001/items/687d142d714b1386a44f)  
zipダウンロードしてうんたらかんたらするのめんどうだと思っていたそこのあなた（俺）にぴったりですね！ 

紹介した2つの記事ですが、見てもらえればわかりますがどちらもVCCW制作者の宮内さんが書いている記事です。以前はアップデートの情報などはブログに書かれていたと記憶していますが、そちらは更新されなくなりはじめていて（たぶん）、最近はQiitaに書かれているようです。（ブログをチェックされていた方は要注意ですね）

見ての通り、記事の紹介なだけなので大したことしたわけでもないですが……。追記ここまでです。

----

[VCCW](http://vccw.cc)というものを使おうと思った。制作者が日本人だからなんか困ったら日本語で聞けるんじゃね？とかいう甘い考えがなくもない。  
Vagrant使ったことない人のためにもVagrantとVirtualBoxのインストールについても触れています。
Chefについて知らなく人でも、私もChef弱者なんでなんとかなるんじゃないですかね？(雑)

## 概要みたいな
![Kobito.bk6v9l.png](https://qiita-image-store.s3.amazonaws.com/0/58800/522b57a5-c1a6-2ac9-627a-d96f8341bc7f.png "Kobito.bk6v9l.png")

> Vagrant + Chef + WordPress

って書いてある通り、Vagrant環境にChef使ってWordPress入れてますみたいなやつ。
VCCWを使うことでできる環境に最初から入っているものはこんな感じですね。

+ CentOS 6.5
 + Subversion
 + Git
 + jq 
+ WordPress
 + **wp-cli** (WordPressを操作するコマンド)
 + WordPress i18n Tools
 + WordPress Coding Standards for PHP_CodeSniffer
ツール)
+ PHP5.4 
 + PHPUnit
 + Composer
+ MySQL5.5
+ Apache
+ Node.js
 + grunt, grunt-cli, grunt-init
 + gulp 
+ Ruby 2.1
 + Bundler 
 + **WordMove** (WordPressのローカルDBとリモートDBを同期するツール)
 + Sass

最初存在を知ったときはWordMoveとかWP-CLIが入っていて優秀って思っていただけなんですけど、Node.jsやRubyも入っていて非常に優秀だとか思いました。

ということでさっそく使ってみましょう。

## 事前準備 - Virtual BoxとVagrantのインストール
コマンドでやる場合とふつうにダウンロードする場合とのふたつ用意してみました。
何事もなくHomebrew入っている前提なんですが、ぐぐるか、前の拙記事でも参照していただければ。
[Yeomanを使ってローカルにMEAN環境をつくる - Homebrewのインストール](http://qiita.com/naru0504/items/0338e798c548709b053b#homebrewのインストール)

### brew-caskでやる場合
Homebrewでbrew-caskをインストールして、brew-caskでインストールするっていう2ステップ

```
brew install caskroom/cask/brew-cask
brew cask install vagrant virtualbox  
```

はじめてbrew-cask使うよってパスワード求められると思います。

### ふつうにダウンロードする場合
URL貼っときますからなんか参考にしてください。

+ [Virtual Box](https://www.virtualbox.org)
+ [vagrant](http://www.vagrantup.com)

### vagant-hostsupdaterのインストール
オプショナルって書いてあるけれども、ふつうに便利だから入れた方がいいと思う。  
`vagrant plugin install vagrant-hostsupdater`

[追記]インストール失敗したお話をQiitaに書きました。
[Vagrantのプラグイン(vagrant-hostsupdater)のインストールにコケたことがあった。](http://qiita.com/naru0504/items/6bc6746fd653cb7fbd56/?fr=vccw)

### Vagrant Boxのダウンロード
box addしておく。
`vagrant box add vccw-team/xenial64`


## VCCWのダウンロード
2つの方法がある。(基本的にどのリポジトリだってそうだけど)

+ git cloneする方法  
+ zipファイルをダウンロードする方法  

公式サイトではdownload .zipって書いてあるけどなんとなくgit cloneした方がよいと思う。っていうか公式に書いてなければふつうにzipをダウンロードするなんて紹介しないまである。

### git cloneする方法

```
git clone https://github.com/vccw-team/vccw.git my-wordpress
```

git cloneの後ろにディレクトリの名前を指定できるって知らなかった時期が私にもありました。
もちろん付けなくてもよいやつ。名前は正直なんでもよい。

なんかあったらGitHubのページ参照してみてください。  
[vccw-team/vccw](https://github.com/vccw-team/vccw)

### zipを落とす方法
ダウンロードする解凍する。`vagrant up`する。
一度保存してしまって何度でも使えるので、これはこれですごく使いやすい感じあるんだけれども、割と更新頻度が高いので自分のローカルに落としたバージョンが最新なのかとかで不安になったりならなかったりする。
あと、このあとの手順まんまコピペで済ませるならディレクトリの名前を変更しておいてください。本記事ではmy-wordpressとかそんな感じでやってます。

## Vagrant上のWordPress環境をさわってみる。

```
cd my-wordpress
vagrant up
```

これでWordPress環境が構築されるので、アクセスしてみましょう。
http://wordpress.local/
http://192.168.33.10/
どっちかアクセスしてください。

WordPressの管理画面にログインしてみましょう。
http://wordpress.local/wp-login/

デフォルトでは以下の通りに入力すればログインできます。

+ Username: **admin**
+ Password: **admin**


## vagrant sshしてバージョンとか確認してみた。
`vagrant ssh`しました。
![Kobito.NgSwCY.png](https://qiita-image-store.s3.amazonaws.com/0/58800/8ab51b08-da08-a563-ff38-cc8c49b0de49.png "Kobito.NgSwCY.png")

あれ？こんなかんじだったけなｗ
ともかくいくつか入っているものを確認してみた。
![Kobito.QlHHUZ.png](https://qiita-image-store.s3.amazonaws.com/0/58800/49280df1-c380-71f8-9614-2f3b7b6b1c4a.png "Kobito.QlHHUZ.png")

![Kobito.QZN0jv.png](https://qiita-image-store.s3.amazonaws.com/0/58800/1c4a5d12-f53c-bd0d-81f5-f269fc87e524.png "Kobito.QZN0jv.png")

WordMoveのバージョン確認方法がよくわからなかったのでふつうに`gem list`で見てみました。

## カスタマイズしてみる！

+ メモリの割り当て量を変更する
+ IPアドレスを変更する
+ ホスト名を変更
+ 言語設定を変更する
+ パスワードを変更する

らへんのことをしてみようと思います。

### はじめにやること
カスタマイズをするには.ymlファイルを書き換えをします。
provisonというディレクトリの中にdefault.ymlというのがあるのですが、カスタマイズ用の.ymlとしてsite.ymlを作成します。

```
cp provision/default.yml site.yml
```

さっそく.ymlファイルの設定を書き換えていきましょう。

メモリの割り当て量の変更
![Kobito.e30Wyx.png](https://qiita-image-store.s3.amazonaws.com/0/58800/70572e43-2c6c-1a57-bf59-fd8a2d98690d.png "Kobito.e30Wyx.png")

IPアドレスとホスト名の変更
![Kobito.sRjoED.png](https://qiita-image-store.s3.amazonaws.com/0/58800/b6aad203-69d3-ecd2-6144-112e8441a0d5.png "Kobito.sRjoED.png")

日本語化とサイトのタイトルの変更
![Kobito.aXmqJh.png](https://qiita-image-store.s3.amazonaws.com/0/58800/da558f7c-27fb-b1c3-f221-c557747eb4c1.png "Kobito.aXmqJh.png")

ユーザーの追加とIDの変更など
![Kobito.bnNgwN.png](https://qiita-image-store.s3.amazonaws.com/0/58800/e7fea5d0-a60a-27c7-c1a5-d114374fef0e.png "Kobito.bnNgwN.png")

![Kobito.iuVeHw.png](https://qiita-image-store.s3.amazonaws.com/0/58800/82aa81f0-09bc-ce50-7e88-024ad6f81dee.png "Kobito.iuVeHw.png")


項目を変えたら`vagrant reload`で反映されます。
なんか反映されない項目は`vagrant reload`してから`vagrant provision`しないと設定値は変わらないのでお気をつけくださいな。いや`vagrant reload --provision`ってひとつにまとめられるんだけど。
設定変更後にreloadしたらおそらくパス求められますがふつうに入力してください。
あとたまーにchefうまくいかなくて以下のエラー出ることがあります。

```
Chef never successfully completed! Any errors should be visible in the
output above. Please fix your recipes so that they properly complete.
```

これがなんでなのかchefに明るくないので、よくわかってないんですけど`rm .vagrant/machines/default/virtualbox/synced_folders`してから`vagrant reload --provision`とかしてみてください。
もっとよい解決策を知っている方がいたらコメントくださいm(_ _)m

### 確認！
IPを変えたので[192.168.33.10](http://192.168.33.10/)にはつなげません。
あたらしく設定してみた[192.168.89.54](http://192.168.89.54/)につないでみます。

![Kobito.4hQR4L.png](https://qiita-image-store.s3.amazonaws.com/0/58800/095a9d7d-1aeb-bb6a-ddb3-b30dab17c117.png "Kobito.4hQR4L.png")

つながった。もちろんホストも変えたので[my-wordpress/](http://my-wordpress)でもよい。

ログインする
![Kobito.qDl6os.png](https://qiita-image-store.s3.amazonaws.com/0/58800/99d5d3ee-b0ce-08d5-8a47-2f49daaf0879.png "Kobito.qDl6os.png")

ばっちりこっちも日本語化されています。

![Kobito.XkG3gA.png](https://qiita-image-store.s3.amazonaws.com/0/58800/3bd483b7-40cf-5325-ff9c-92a33a2b293d.png "Kobito.XkG3gA.png")


## データベースのこと
本番環境や開発環境とローカルのDBを合わせたい場合にどうするのかみたいなところを割とよく悩んでいたのですが、その辺はWordMoveで同期できそうです。
そしてvccwは上述の通りWordMoveを含んでいます。
WordMoveの使い方あたりも近いうちに書きたいと思います。これ書かないフラグなんですけど、フラグへし折ってみせます。

## 参考
[VCCW 本家サイト](http://vccw.cc)
[Vagrant + Chef ベースのWordpress Theme / Plugin 開発環境「VCCW」](http://whiskers.nukos.kitchen/2014/09/01/vccw.html)
[VCCWでWP-CLI（A command line interface for WordPress）を試す](http://whiskers.nukos.kitchen/2014/11/28/wordpress-cli.html)
[Firegoby](https://firegoby.jp)