ローカルでのWordPress環境構築にはVagrantのVCCWがお手軽で早くてとても便利
はじめに
これまでは、例えばMacの場合はMAMP
を使用してローカル環境にWordPressを構築しいじっていました。しかし、WordPressのインストールは毎回手作業で行っており面倒でした。本当ならばWP-CLI
等を使って自動で環境構築できるようにしておくなどしておけばよかったのですが、どうも面倒でやらずじまいでした。
そして今回新しいパソコンにまたWordPress環境を構築する必要が出てきたため、良いタイミングだと考えWordPress環境の自動構築について調べました。
すると、vagrant
のbox
としてWordPressがインストール済でそのほか諸々の環境も含めて構築済のbox
を見つけました。それがvccw
です。これを使うと、vccw
のbox
を自分のPCにクローンして、vagrant up
するだけでWordPressが動く仮想マシンができあがります。ここでは実際にvagrant
を使ってWordPress環境を含むvccw
を作成し、その上で動作するWordPressサイトにアクセスするまでの手順をメモします。
参考サイト
以下が公式サイトになります。 VCCW
以降の作業内容は以下のサイトを参考にさせて頂きました。ありがとうございます。 WordPressをVagrant環境にらくらくインストールする。- Qiita
できるようになることと作業概要
自分のPC上でvccw
による仮想マシンを作成し、その上で動作するWordPressサイトを簡単に構築できるようになります。なお、vccw
には以下が含まれています。(2018/5/24時点)
- Ubuntu 16.04 Xenial64 Subversion Git jq
- WP-CLI & WordPress WP-CLI WordPress i18n Tools WordPress Coding Standards for PHP_CodeSniffer
- PHP 7 PHPUnit Composer PHP_CodeSniffer
- MySQL 5.7.x
- Apache 2.4.x
- NodeJS latest
- Ruby 2.3 Bundler Wordmove MailCatcher
以降では、vagrant
でvccw
をダウンロード&インストールしてWordPressにアクセスするところまでの手順を説明します。以降の作業はほとんどターミナル上での作業になります。Ubuntu、Windows10の両方共にほとんど同じ作業になります。
必要となる環境
下記の通りすでにvagrant
を使っている環境であることが前提となります。2018/5/24時点です。
- OSは問わない。Windows、Mac、LinuxでもOK。今回私はUbuntuとWindows10の両方を使いました。
- 仮想化支援機構がONになっている必要あり(vagrant動作のため)
- vagrant(ver1.8.6以上)、VirtualBox(ver5.1.6以上)はインストール済とする
VCCWのインストールと起動
以下では、私の環境ではホームディレクトリにVagrant
というディレクトリが作成済でそこで作業するためにcd
で移動しています。
そして~/Vagrant
にwpgrant
という私が適当につけた名前のディレクトリにvccw
のbox
をクローンしています。vccw
のbox
はhttps://github.com/vccw-team/vccw.git
にあります。https://github.com/vccw-team/vccw.git
の後にクローン先となるディレクトリを指定できます。
$ cd ~/Vagrant
$ git clone https://github.com/vccw-team/vccw.git wpgrant
Cloning into 'wpgrant'...
remote: Counting objects: 5920, done.
remote: Total 5920 (delta 0), reused 0 (delta 0), pack-reused 5920
Receiving objects: 100% (5920/5920), 9.17 MiB | 570.00 KiB/s, done.
Resolving deltas: 100% (2085/2085), done.
クローンしたディレクトリの中身を見てみると、以下のようになっています。
$ ls
Gemfile Gemfile.lock LICENSE README.md Rakefile Vagrantfile ansible.cfg bin provision spec
ここで、vccw
のbox
から作成する仮想マシン(以降ではこの仮想マシンを単純にvccw
と呼びます。)の設定が記述されているprovision/default.yml
を編集し、vccw
上に構築するWordPressを日本語化しておきます。
(・・・上省略・・・)
#
# WordPress Settings
#
version: latest
lang: ja #ここを en_US → ja に変更
title: Welcome to the VCCW
multisite: false
rewrite_structure: /archives/%post_id%
(・・・下省略・・・)
このクローンしたディレクトリでvagrant up
するだけでWordPress環境を構築済の仮想マシンが出来上がってしまいます。なんとも便利です。
ダウンロードとインストールにそれなりに時間かかりますが、もちろんこれは初回のvagrant up
時のみです。
$ vagrant up
Bringing machine 'vccw.test' up with 'virtualbox' provider...
==> vccw.test: Box 'vccw-team/xenial64' could not be found. Attempting to find and install...
vccw.test: Box Provider: virtualbox
vccw.test: Box Version: = 20180107
==> vccw.test: Loading metadata for box 'vccw-team/xenial64'
vccw.test: URL: https://vagrantcloud.com/vccw-team/xenial64
==> vccw.test: Adding box 'vccw-team/xenial64' (v20180107) for provider: virtualbox
vccw.test: Downloading: https://vagrantcloud.com/vccw-team/boxes/xenial64/versions/20180107/providers/virtualbox.box
vccw.test: Progress: 3%
最終的に以下のようなメッセージまでが表示されてvccw
のインストールは完了です。
(・・・上省略・・・)
TASK [stat] ********************************************************************
ok: [vccw.test]
TASK [Create a Movefile] *******************************************************
changed: [vccw.test]
[VCCW - A WordPress development environment.](https://vccw.cc/)
PLAY RECAP *********************************************************************
vccw.test : ok=70 changed=63 unreachable=0 failed=0
続いてvccw
上で動作するWordPressを正しく表示するための作業について次で説明します。
WordPressサイトを正しく表示するための名前解決について
vccw
が起動した時点でWebサーバとWordPressも動いており、デフォルトの設定ではvccw.test
というURLがvccw
上で動作するWordPressサイトにアクセスするために用意されています。もしくは、vccw
のIPアドレスがデフォルトでは192.168.33.10
に設定されているため、このIPアドレスをブラウザで入力すればvccw
上のWordPressサイトにアクセスできます。
しかしこのままでは、ブラウザからvccw.test
にアクセスすると以下のように表示されます。(以下はFirefoxの場合)
また、ブラウザから192.168.33.10
にアクセスしてみると、以下のように崩れた状態で表示されます。
上記の原因は共に共通しており、vccw.test
というURLを名前解決できていないためです。すなわち、vccw.test
と192.168.33.10
が結びついていない状態です。そのため、ブラウザからvccw.test
にアクセスしても見つけることができず表示できません。また、192.168.33.10
にアクセスするとWordPressサイトは表示されますが、その中に含まれるCSS
やJS
、画像が表示されず崩れてしまいます。これはこれらCSS
やJS
、画像のURLにvccw.test
が含まれており、これを名前解決できないためです。
よって、vccw.test
を名前解決できるようにする必要があります。このために、ホストOS毎によって以下の作業が必要になります。それぞれについて以降に載せます。
- Mac、Linuxの場合 - プラグイン
vagrant-hostsupdater
のインストール - Windows10の場合 -
hosts
への追記
Mac、Linuxの場合 - プラグインvagrant-hostsupdaterのインストール
ホストOSがMac、Linuxの場合は、Windows10の場合に比べてより簡単になります。具体的には、名前解決のための情報を自動で追加してくれるvagrant
のプラグインであるvagrant-hostsupdater
を以下のようにインストールします。これで完了です。
$ cd wpgrant
$ vagrant plugin install vagrant-hostsupdater
Installing the 'vagrant-hostsupdater' plugin. This can take a few minutes...
Fetching: vagrant-hostsupdater-1.1.1.160.gem (100%)
Installed the plugin 'vagrant-hostsupdater (1.1.1.160)'!
なお、vagrant up
時には、名前解決の設定変更のためにsudo
権限が必要となり、以下のようにパスワード入力を求められますので入力してください。なお、ここで求められるパスワードとは、Macの場合はMacで現在ログインして使用しているユーザのパスワード、Linuxの場合も特別な設定をしていなければ現在ログインして使用しているユーザのパスワードになります。(2018/9/5 追記)
[vagrant-hostsupdater] Checking for host entries
==> vccw.test: [vagrant-hostsupdater] Writing the following entries to (/etc/hosts)
==> vccw.test: [vagrant-hostsupdater] 192.168.33.10 vccw.test # VAGRANT: da9ad6d234525363457834cd2340a (vccw.test) / 334e0cd6-154a-43a9-a6ad-9a5597f5aa235
==> vccw.test: [vagrant-hostsupdater] This operation requires administrative access. You may skip it by manually adding equivalent entries to the hosts file.
[sudo] users のパスワード: (ここでパスワード入力)
==> vccw.test: Setting hostname...
Windows10の場合 - hostsへの追記
Windows10の場合は、vagrant-hostsupdater
が動作できないので、名前解決情報をWindows10に直接登録する必要があります。この作業自体は特に難しいことはなく、1つのテキストファイルを編集するだけでOKです。なお、この作業内容自体は、以下の参考サイト様にわかりやすく記載されているためそちらを参照ください。
Windows10でhostsファイルを簡単に編集する2つの方法 | あいしんくいっと
作業としては、hosts
というテキストファイルに以下のように最後に1行追記するだけになります。
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
192.168.33.10 vccw.test # vccw server # ここを追記
VCCW上のWordPressにアクセスしてみる
これであとはブラウザでvccw.test
、もしくは192.168.33.10
にアクセスすると、無事に以下のようにWordPressサイトが表示されます。
もちろんvagrant ssh
でvccw
にログイン可能です。
$ vagrant ssh
WordPressの管理画面にはhttps://vccw.test/wp-login.php/
でログインできます。WordPress管理者として以下のアカウントがデフォルトで設定されています。
- ユーザ名: admin
- パスワード: admin
WordPressサイトの表示が遅い場合の解決方法
# 2018/5/25 追記
もしvccw
のWordPressのサイト表示が遅い場合は、以下に解決方法をまとめたので該当する方は見てみてください。
VCCWのWordPressが遅い問題の解決方法(Windows10、Ubuntu両方)
まとめ
はじめてVCCWを使用しましたが、あっという間にWordPress環境をローカル環境に構築でき非常に便利に感じました。また、VCCWには本番環境との同期機能や他にも様々な機能があるため色々と使えそうです。毎回自分のローカル環境にWordPress環境を構築するのが面倒に感じている方はぜひ試してみてください。
関連記事
- 公開日:2020/01/22 更新日:2020/01/22
Vagrant upしたら「VirtualBox is complaining that the kernel module is not loaded.」が出る時の対処方法
Ubuntu18.04上でVagrantの仮想マシンを起動しようとしたところ、<code>VirtualBox is complaining that the kernel module is not loaded.</code>というエラーが出ました。この記事ではこの解決策をまとめます。
- 公開日:2019/04/26 更新日:2019/04/26
Ubuntu上のVagrantの仮想マシンがVBOX_E_INVALID_VM_STATEで起動できない場合の対処方法
Ubuntu18.04上でVagrantの仮想マシンを起動しようとしたところ、VBOX_E_INVALID_VM_STATE (0x80bb0002)というエラーが出て起動できなくなってしまいました。調べてみるとコマンド1つで簡単に解決できました。この記事でその時の症状と解決策についてメモします。
- 公開日:2015/03/25 更新日:2015/03/25
よく使うVagrantfileの設定のまとめ
Vagrantfileで良く使う、共有フォルダの設定やネットワークの設定についてまとめておきます。
- 公開日:2015/03/20 更新日:2015/03/20
vagrantを使った仮想マシンの作成手順
これまではVirtualBoxやVMWare上でisoファイルを指定し、設定項目入力して〜のような作業を行って仮想マシンを作成していましたが、vagrantを使うとこれらの作業をコマンド1つで完了することができ、だいぶ楽になると思います。vagrantで仮想マシンを作成する手順をメモしておきます。