Windows10 ProにVagrantを入れ、VCCW(WordPress開発用仮想マシン)を動かすまでの手順の説明です。
VagrantとVCCWで何が出来るのか
Vagrantは凄くザックリ言うとVirtualBoxやHyper-Vなどの異なる仮想マシンを統一されたコマンドでコントロールするためのラッパー(コマンド集)です。
仮想マシンの作成と初期設定の手順を構成ファイルに記録しておくことで、環境構築を自動的にできるようになります。
VCCWはその構成ファイルで、これを使うとWordPressの開発に必要な仮想マシンをコマンド一発で作成できます。
VCCWで作成した仮想マシンには最初から下記の環境が整っていますので、よくあるWordPress案件に対応できるでしょう。
- Ubuntu
- WP-CLI と WordPress
- PHP 7
- MySQL 5.7.x
- Apache 2.4.x
- NodeJS
- Ruby 2.3とユーティリティ(特にwordmove)
Vagrantのインストール
ここからWindows版をダウンロード・インストールする。
インストール自体は全部「次へ」をクリックするだけで良いので簡単です。
VCCWのインストール
「Getting Started」の通りにやるだけなんですが、何度も英語を読みたくないので手順を記録しておきます。
hostsの追記
公式サイトでは vagrant-hostsupdater
のインストールも示されているが、Windowsではhostsの書き換えが出来ないのでインストール不要。
VCCWはデフォルト設定だとIPアドレスが192.168.33.10の仮想マシンを作るので、ホスト名でアクセスできるようにhostsに追記しておく。
具体的には C:\Windows\System32\drivers\etc\hosts
に
192.168.33.10 vccw.dev #wordpress 開発環境
を追記する。
boxをダウンロード
vagrant box add vccw-team/xenial64
を実行すると、VCCWのマスターイメージがダウンロードされる。
fuka@CYAN C:\usr\VM\vagrant\vccw-3.0.6
$ vagrant box add vccw-team/xenial64
==> box: Loading metadata for box 'vccw-team/xenial64'
box: URL: https://atlas.hashicorp.com/vccw-team/xenial64
==> box: Adding box 'vccw-team/xenial64' (v20161209) for provider: virtualbox
box: Downloading: https://atlas.hashicorp.com/vccw-team/boxes/xenial64/versions/20161209/providers/virtualbox.box
box: Progress: 100% (Rate: 3879k/s, Estimated time remaining: --:--:--)
==> box: Successfully added box 'vccw-team/xenial64' (v20161209) for 'virtualbox'!
- VCCWはVirtualBoxを必要とするが、VirtualBoxがインストールされていない場合はこのタイミングで自動的にインストールされる。
上手く行かなかった場合は手動でダウンロード・インストールする。 - コンソールの表示がbashっぽいですが、これはConEmuを使っているためで、コマンドプロンプトやPowerShellでの実行と等価です。
設定をダウンロード
「5. Please download .zip or .tar.gz.」から、設定(プロビジョニング)用ファイルをダウンロードする。
設定を任意のフォルダに解凍
解凍先は自分は C:\usr\VM\vagrant\vccw-3.0.6
とした。
仮想マシンの種類を増やす時は
- C:\usr\VM\vagrant\machine-A
- C:\usr\VM\vagrant\machine-B
みたいな感じでフォルダをコピーして増やしてゆく。
参照:
起動
作った設定フォルダに移動し、
vagrant up
を実行する。
実行例:
fuka@CYAN C:\usr\VM\vagrant\vccw-3.0.6
$ vagrant up
Bringing machine 'vccw.dev' up with 'virtualbox' provider...
==> vccw.dev: Importing base box 'vccw-team/xenial64'...
:(略)
TASK [Create a Movefile] *******************************************************
changed: [vccw.dev]
PLAY RECAP *********************************************************************
vccw.dev : ok=53 changed=48 unreachable=0 failed=0
ちなみに、1回目は5~10分程度待たされるが、2回目以降は1~2分程度で起動する。
実行例:
fuka@CYAN c:\usr\VM\vagrant\vccw-3.0.6
> vagrant up
Bringing machine 'vccw.dev' up with 'virtualbox' provider...
==> vccw.dev: Checking if box 'vccw-team/xenial64' is up to date...
:(略)
==> vccw.dev: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> vccw.dev: flag to force provisioning. Provisioners marked to run always will still run.
動きを確認する
表示する
VCCWのデフォルト値では
IPアドレス:192.168.33.10
ホスト名:vccw.dev
で仮想マシンが作成されるので、
http://192.168.33.10/ 又は
http://vccw.dev/
をブラウザで開くとWordPress画面が表示されるはず。
WordPress管理画面を開く
管理画面は http://vccw.dev/wp-admin/ をブラウザで開く。
管理画面のID/PASSはadmin
/admin
。
ホストマシンとのやり取り
ホストマシンと仮想マシンのやり取りは以下の方法になる。
- 共有されたフォルダ。
ホストマシンからはVCCWを配置したフォルダの中に wordpress フォルダが見えるので、この中を読み書きする。
今回だとC:\usr\VM\vagrant\vccw-3.0.6\wordpress
- sshで繋ぐ(putty, RLogin, WinSCP等)。
プロトコル:ssh
、ポート:22
、ID:vagrant
、PASS:vagrant
仮想マシンの操作
全て、操作対象の仮想マシンのディレクトリに移動してコマンド実行する。
cd /c/usr/VM/vagrant/vccw-3.0.6
状態を確認する – status
> vagrant status
Current machine states:
vccw.dev running (virtualbox)
The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.
マシンを停止する – halt
fuka@CYAN c:\usr\VM\vagrant\vccw-3.0.6
> vagrant halt
==> vccw.dev: Attempting graceful shutdown of VM...
マシンを起動する – up
fuka@CYAN c:\usr\VM\vagrant\vccw-3.0.6
> vagrant up
Bringing machine 'vccw.dev' up with 'virtualbox' provider...
==> vccw.dev: Checking if box 'vccw-team/xenial64' is up to date...
:(略)
==> vccw.dev: flag to force provisioning. Provisioners marked to run always will still run.
他のコマンドは公式サイトで確認して下さい。
Vagrant本体の更新
最新版が出たときは、公式サイトからMSIをダウンロードしてダブルクリックすれば良い。
自動的に更新インストールしてくれる。
但し、自分の環境では更新後Boxの作成がうまく行かなくなったので修復コマンドの実行が必要だった。
Vagrant更新後、Boxを作成しようとすると・・・
fuka@CYAN C:\usr\VM\vagrant\vccw-3.0.6
> vagrant box add vccw-team/xenial64
Vagrant failed to initialize at a very early stage:
The plugins failed to initialize correctly. This may be due to manual
modifications made within the Vagrant home directory. Vagrant can
attempt to automatically correct this issue by running:
vagrant plugin repair
If Vagrant was recently updated, this error may be due to incompatible
versions of dependencies. To fix this problem please remove and re-install
all plugins. Vagrant can attempt to do this automatically by running:
vagrant plugin expunge --reinstall
Error message given during initialization: Unable to resolve dependency: user requested 'vagrant-hostsupdater (> 0)'
プラグインの修復をしなさいと言っているようだ。
指示された通りに
vagrant plugin repair
を実行する・・・
fuka@CYAN C:\usr\VM\vagrant\vccw-3.0.6
> vagrant plugin repair
Repairing currently installed plugins. This may take a few minutes...
Fetching: vagrant-hostsupdater-1.0.2.gem (100%)
Installed plugins successfully repaired!
成功したらしい。
再度、Box作成を実行すると・・・
fuka@CYAN C:\usr\VM\vagrant\vccw-3.0.6
> vagrant box add vccw-team/xenial64
==> box: Loading metadata for box 'vccw-team/xenial64'
box: URL: https://atlas.hashicorp.com/vccw-team/xenial64
==> box: Adding box 'vccw-team/xenial64' (v20161209) for provider: virtualbox
box: Downloading: https://atlas.hashicorp.com/vccw-team/boxes/xenial64/versions/20161209/providers/virtualbox.box
box: Progress: 0% (Rate: 398k/s, Estimated time remaining: 0:45:48)-)
成功した。