VirtualBoxにKUSANAGI for VMwareを入れるまとめ

# 手順

## 1. ovaファイルのダウンロード
[KUSANAGI for VMware – KUSANAGI](https://kusanagi.tokyo/cloud/kusanagi-for-vmware/)

## 2. ovaファイルをVirtualBoxに読み込ませる
ファイルメニューの「仮想アプライアンスのインポート」から、上記でダウンロードしたovaファイルを読み込む。
俺は名前だけ、任意のもの（デフォルト: vm）にした。

## 3. 起動
VirtualBoxマネージャーから、該当の仮想マシンをダブルクリックして起動

## 4. ネットに繋がるようにする
[VirtualBoxにKUSANAGI for VMware入れたらネットワークから外に出られない問題 \- Qiita](https://qiita.com/kkotaro0111/items/b37feea24ac3f51e1960)

## 5. yumのレポジトリを更新
[VirtualBoxにKUSANAGI for VMware入れたらyum updateが404返す問題 \- Qiita](https://qiita.com/kkotaro0111/items/b6487a55cc8531ca6db4)

## 6. 公式マニュアルに従い、セットアップ
[KUSANAGIの初期設定 – KUSANAGI](https://kusanagi.tokyo/document/kusanagi-init/)

```bash
[GUEST ROOT]# yum --enablerepo=remi,remi-php56 update -y
[GUEST ROOT]# reboot

[GUEST ROOT]# kusanagi init
```

## 7. sshでログインできるようにする
手順6でsshの初期設定が行われるので、その後にauthorized_keysに任意の公開鍵を追加する。

```bash
[GUEST ROOT]# wget https://github.com/<my_github_account>.keys
[GUEST ROOT]# cat <my_github_account>.keys >> /home/kusanagi/.ssh/authorized_keys
```

ホストから、SSHで入れるか確認。

```bash
[HOST]$ ssh -l kusanagi 192.168.1.193
```

## 8. 公式マニュアルに従い、プロビジョニングする
[KUSANAGIのプロビジョニング – KUSANAGI](https://kusanagi.tokyo/document/kusanagi-provision/)

```bash
[GUEST ROOT]# kusanagi provision <任意のプロファイル名>
```

## 9. 公式マニュアルに従い、ブラウザから WordPress をセットアップ
[WordPressのインストール – KUSANAGI](https://kusanagi.tokyo/document/wp-install/)

この時、ホストOSの /etc/hosts に、手順8で指定したFQDNでアクセスできるように設定を追加しておく

```bash
[HOST]$ sudo echo 'kusanagi.test 192.168.1.193' >> /etc/hosts
```

## 10. kusanagiユーザーからsudoできるようにする
```bash
[GUEST ROOT]# vi /etc/group
...
wheel:x:10: -> wheel:x:10:kusanagi # wheel に kusanagi を追加
...
```

## 11. wp-cli のアップデート
```bash
[GUEST ROOT]# wp --info

PHP binary:	/usr/bin/php
PHP version:	5.6.24
php.ini used:	/etc/php.ini
WP-CLI root dir:	phar://wp-cli.phar
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version:	0.24.0
```
よく見ると、 wp-cliのバージョンが古い。なのでアップデートする。

```bash
[GUEST ROOT]# wp cli update --allow-root

You have version 0.24.0. Would you like to update to 1.5.0? [y/n] y
Downloading from https://github.com/wp-cli/wp-cli/releases/download/v1.5.0/wp-cli-1.5.0.phar...
New version works. Proceeding to replace.
Success: Updated WP-CLI to 1.5.0.
```

wp-cli は、 root で実行しようとするとエラーが返ってくるので、オプションに```---allow-root```を与えて、rootでupdateできるようにする。ちなみに、wpコマンド自体は /usr/bin/ にあるので、 root じゃないとアップデートできない。

```bash
[GUEST ROOT]# wp --info

OS:	Linux 3.10.0-327.28.2.el7.x86_64 #1 SMP Wed Aug 3 11:11:39 UTC 2016 x86_64
Shell:	/bin/bash
PHP binary:	/usr/bin/php
PHP version:	5.6.24
php.ini used:	/etc/php.ini
WP-CLI root dir:	phar://wp-cli.phar
WP-CLI vendor dir:	phar://wp-cli.phar/vendor
WP_CLI phar path:	/root
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version:	1.5.0
```

## 12. wp-cliの設定
このVM内ではWordPressのディレクトリは1つなので、wp-cliのconfigファイルにpathを記載しておく。それにより、wpの実行都度、```--path=<wp_dir>```というオプションを付けなくて済むようになる。

```bash
[GUEST ROOT]# su - kusanagi
[GUEST KUSANAGI]$ echo 'path: /home/kusanagi/<手順8で指定した、任意のプロファイル名>/DocumentRoot/' >> ~/wp-cli.local.yml

[GUEST KUSANAGI]$ wp --info

OS:	Linux 3.10.0-327.28.2.el7.x86_64 #1 SMP Wed Aug 3 11:11:39 UTC 2016 x86_64
Shell:	/bin/bash
PHP binary:	/usr/bin/php
PHP version:	5.6.24
php.ini used:	/etc/php.ini
WP-CLI root dir:	phar://wp-cli.phar
WP-CLI vendor dir:	phar://wp-cli.phar/vendor
WP_CLI phar path:	/home/kusanagi
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:	/home/kusanagi/wp-cli.local.yml
WP-CLI version:	1.5.0
```

## 13. 一応、WordPressをアップグレード
```bash
[GUEST KUSANAGI]$ exit # rootユーザーに戻る
[GUEST ROOT]# wp core update --allow-root --path=/home/kusanagi/<プロファイル名>/DocmentRoot/
[GUEST ROOT]# wp core version

4.9.5
```

## 14. パーミッション変更
セキュリティ的には良くないけど、今回は開発環境としてローカルに用意しただけだし、これでよい。
これをやっておかないと、WordPresｓの管理画面からWPのアップグレードができないのです…

```
[GUEST ROOT]# cd /home/kusanagi/<プロファイル名>/DocumentRoot/
[GUEST ROOT]# find . -type f -print | xargs chmod 606
[GUEST ROOT]# find . -type d -print | xargs chmod 707
```

[ファイルまたはディレクトリのみへの chmod コマンド \(tec\-q note\)](http://www.tec-q.com/note/2007/11/_chmod.html)

# 今後やれるようにしたいこと
- 共有ディレクトリ内にWordPressのファイル一式を置く
    - 何気に最重要。なんか共有ディレクトリがうまくマウントされなくて困ってる…
    - （追記） kernel-devel と kernel-devel-3.10.0-327.28.2.el7.x86_64　とをyumで入れたら、Guest Additionをインストールできたので、なんとかなった。
    - （追記） どこにどうマウントするか、という問題はありそう。今んとこ「自動マウント」にして、WPディレクトリを```DocumentRoot/```にシンボリックリンク貼ってる。
- パーミッションのマスク値の変更
    - WPが作ったファイルのパーミッションが606でも707でもないと、あとあと困る気がしてる
    - （追記）特に問題ない。WPコアの更新やプラグインのインストールは、FTPでやろう。
        - KUSANAGIのFTPサーバーは、ローカルホストからしか接続できないので、これで問題ない。
- WordPressのコアを入れるディレクトリを変更しても大丈夫か
    - DocumentRoot/ 直下に　wp-config.php とかがあるけど、移設の関係で、 /wp/wp-config.php のように下層に置きたい。
    - （追記）大丈夫だったが、KUSANAGIコマンドがWPの位置を補足できなくなり、動かなくなる。その場合、kusanagiの設定ファイルを書き換える必要が出てくるので、あまりオススメはしない。

# 関連記事
- [VirtualBoxにKUSANAGI for VMware入れたらネットワークから外に出られない問題 \- Qiita](https://qiita.com/kkotaro0111/items/b37feea24ac3f51e1960)
- [VirtualBoxにKUSANAGI for VMware入れたらyum updateが404返す問題 \- Qiita](https://qiita.com/kkotaro0111/items/b6487a55cc8531ca6db4)
- [KUSANAGI を VirtualBox に入れた時のネットワーク設定をブリッジネットワークからNATに変える \- Qiita](https://qiita.com/kkotaro0111/items/6b85db85479f81898d35)