FreeBSDでVCCWを使ってWordPressプラグインの開発[追記あり]
サーバーが復活して、やりたいことがやっとやれるようになりました。その一つが、サーバー(FreeBSD)にWordPressプラグインの開発環境を作る事です。
WordPressの開発環境は、Vagrant上のVCCWを使うのが楽ですし、確実です。次の手順で立ち上げます。
- VirtualBoxのインストール
- Vagrantのインストール
- VCCWのインストール
- hostsの設定
- vagrant up
- 起動確認
1. VirtualBoxのインストール
VirtualBoxは、パッケージとして用意されています。
# pkg install virtualbox-ose
/boot/loader.confに次の設定記入します。
vboxdrv_load="YES"
/etc/rc.confにも設定を追加します。
# -- VirtualBox # Sun May 18 17:04:35 2017
vboxnet_enable="YES"
devfs_system_ruleset="system"
FreeBSDの場合、次の設定をしないと、vagrant upの時に、ネットワーク設定でエラーになります。
- VirtualBoxのグループに自分自身を追加
- /dev/vboxnetctlのパーミションを設定
- パーミションの固定化
次のウェブページに記載されています。
1.1 VirtualBoxのグループに自分自身を追加
次のコマンドで、自分自身(下の例ではyourusername)を追加します。
# pw groupmod vboxusers -m yourusername
1.2 /dev/vboxnetctlのパーミションを設定
# chown root:vboxusers /dev/vboxnetctl # chmod 0660 /dev/vboxnetctl
1.3 パーミションの固定化
再起動しても/dev/vboxnetctlのパーミションを正しく設定するためと、USBデバイスを使うために、/etc/devfs.confに次の設定をします。
[system=10]
add path 'usb/*' mode 0660 group operator
own vboxnetctl root:vboxusers
perm vboxnetctl 0660
2. Vagrantのインストール
Vagrantもパッケージが用意されています。簡単です。
# pkg install vagrant
3. VCCWのインストール
VCCWはgitからコピーしてきます。gitをインストールしていない場合は、このインストールも必要です。
# pkg install git
gitは、ユーザー環境でコピーしてきます。
$ cd $ mkdir VBOX $ cd VBOX $ git clone https://github.com/miya0001/vccw.git
実行ディレクトリの下に、vccwと言うディレクトリが作られ、その中に各種ファイルがコピーされてきます。VBOXと言うディレクトリを作る理由は、仮想マシンを複数立ち上げるための保管ディレクトリとするためです。
4. hostsの設定
/etc/hostsにvccw.devを追加しておきます。この設定が無いと、正しく表示できません。
192.168.33.10 vccw.dev
5. vagrant up
vagrant upで起動するはずです。ですが、結構ハマりました。
- gemのバージョン違い
- VirtualBoxの設定不足
5.1 gemのバージョン違い
まずは、パッケージの依存関係です。ruby_depのバージョン違いでエラーになりました。
$ vagrant up /usr/local/lib/ruby/site_ruby/2.3/rubygems/specification.rb:1436:in `block in activate_dependencies': can't satisfy 'ruby_dep (<= 1.3.1)', already activated 'ruby_dep-1.5.0' (Gem::LoadError) from /usr/local/lib/ruby/site_ruby/2.3/rubygems/specification.rb:1428:in `each' from /usr/local/lib/ruby/site_ruby/2.3/rubygems/specification.rb:1428:in `activate_dependencies' from /usr/local/lib/ruby/site_ruby/2.3/rubygems/specification.rb:1410:in `activate' from /usr/local/lib/ruby/site_ruby/2.3/rubygems.rb:300:in `block in activate_bin_path' from /usr/local/lib/ruby/site_ruby/2.3/rubygems.rb:300:in `synchronize' from /usr/local/lib/ruby/site_ruby/2.3/rubygems.rb:300:in `activate_bin_path' from /usr/local/bin/vagrant:23:in `'
次のページを参考にして、修正しました。
一度、ruby_depをアンインストールしてから、バージョンを指定してruby_depをインストールします。
# gem uninstall ruby_dep You have requested to uninstall the gem: ruby_dep-1.5.0 listen-3.1.5 depends on ruby_dep (~> 1.2) If you remove this gem, these dependencies will not be met. Continue with Uninstall? [yN] y Successfully uninstalled ruby_dep-1.5.0 # gem install ruby_dep -v 1.3.1 Fetching: ruby_dep-1.3.1.gem (100%) Successfully installed ruby_dep-1.3.1 Parsing documentation for ruby_dep-1.3.1 Installing ri documentation for ruby_dep-1.3.1 Done installing documentation for ruby_dep after 0 seconds 1 gem installed
5.2 VirtualBoxの設定不足
もし、VirtualBoxの設定が正しくできていないと、次のエラーになります。非常にハマりました。
==> vccw.dev: Clearing any previously set network interfaces... There was an error while executing `VBoxManage`, a CLI used by Vagrant for controlling VirtualBox. The command and stderr is shown below. Command: ["hostonlyif", "create"] Stderr: 0%... Progress state: NS_ERROR_FAILURE VBoxManage: error: Failed to create the host-only adapter VBoxManage: error: Failed to execute 'VBoxNetAdpCtl add' (exit status: 32256) VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component HostNetworkInterfaceWrap, interface IHostNetworkInterface VBoxManage: error: Context: "RTEXITCODE handleCreate(HandlerArg *)" at line 94 of file VBoxManageHostonly.cpp
6. 起動確認
FreeBSDの上でブラウザを起動し、vccw.devまたは192.168.33.10にアクセスします。正しく表示できましたでしょうか?
vagrant upした同じディレクトリで、vagrant sshでログインできます。ログイン後、/var/log/apache2/vccw.dev-access.logを確認すると良いと思います。
VCCWサーバーには、FreeBSDからでしかアクセスできません。ネットワーク上の他のPC(Macとか)からアクセスできるようにするには一手間必要です。
(追記 2017-06-24 00:20)
ネットワークの他のPCからアクセスする方法をまとめました。
VCCWを同じネットワーク内の他のPCからアクセスできるようにする[amazonjs asin="4777517012" locale="JP"]
ディスカッション
コメント一覧
まだ、コメントがありません