ローカルの開発環境として、Vagrantを使います。Macの方がセットアップ・運用共にが楽なんですが、Windowsでも問題なくできます。
概要
- 使用OS:Windows 7
- ゲストOS:CentOS 7.6
- 仮想環境:Vagrant 2.2.2 + VirtualBox 6.0.0
手順
- VagrantとVirtualBoxをインストール
- CentOS7.6を追加してVagrant起動
- PHP 7.1をインストール
参考サイト
基本的には、こちらの記事を参考にさせていただきました。Vagrant + VirtualBoxでWindows上に開発環境をサクッと構築する – Qiita
Windows上でVirtualBox+Vagrant+CentOSによる仮想環境構築 – Qiita
ただ記事と時差があるのか個別にハマったところも何点かあったので、それらについてはまた別の記事を参考にしています。
1. VagrantとVirtualBoxをインストール
最新版をダウンロードしてきてインストールするだけです。Download – Vagrant by HashiCorp
Downloads – Oracle VM VirtualBox
執筆時点での最新バージョンは、Vagrantが2.2.2、VirtualBoxが6.0.0です。
どちらもインストール後に再起動が必要です。
Vagrantプラグインのインストール
こちらの記事を参考にしました。vagrantの便利に使えるプラグイン6選 – Qiita
といってもインストールしたプラグインは以下の3つだけ。
- vagrant-global-status
- vagrant-omnibus
- vagrant-vbguest
あとで必要を感じたら入れるかも知れません。Chefを使うための「vagrant-omnibus」と、Guest addtionのバージョンを自動的に合わせてくれる「vagrant-vbguest」はかなり重要です。
2. CentOS7.6を追加してVagrant起動
ゲストOSをVagrantに設定して起動します。ゲストOSをどこから探してくるかについては様々な情報がありますが、色々試して見た結果、ここで探すのが一番良いと思います。Discover Vagrant Boxes – Vagrant Cloud
で、記事によっては「vagrant box add」でBoxを追加して……と書かれていますが、現行バージョンでは「vagrant init」コマンドでVagranfileを用意して、「vagrant up」するだけで自動的に取得して追加されます。Vagranfileの記述はこんな感じ。
config.vm.box = "centos/7"
「centos/7」が上で探したBox名。最新バージョンのCentOSに基づいて作成されているので、現在のバージョンはCentOS7.6になっています。
ネットワーク周りの設定
ここで割とハマりました。基本的には参考サイトにあるように、config.vm.networkをコメントアウトすれば良いんですが、そこで書かれているIPアドレスが、ネットワークアダプタの「VirtualBox Host-Only Network」と違っていると動きません。僕の場合、「VirtualBox Host-Only Network」が「192.168.56.1」になっていたので、Vagrantfileの設定は「192.168.56.10」にしています。config.vm.network "private_network", ip: "192.168.56.10"
PowerShellのバージョンが古すぎるという警告が出る
「vagrant up」時にPowerShellのバージョンが古すぎるという警告が出ることがあります。警告ではバージョン3.0以上にしろといわれているのですが、Windows7ではデフォルトで2.0。なのでバージョンを上げる必要があります。Windows8以降では入れる必要は無いと思います。参考にした記事はこちら。
Windows Power Shell をアップデート!Windwos7 に Power Shell 5.1をインストール | サイト構築日記
少々手間ですが、記事の手順に沿って実行すればOKです。
vagrant sshで接続出来ない
「vagrant ssh」とすると以下のエラーが出ることがあります(minttyの場合)Pseudo-terminal will not be allocated because stdin is not a terminal.
以下の記事を参考にssh周りの設定を行うことで接続出来るようになります。
Windowsでのvagrant環境構築 – Qiita
3. PHP 7.1とApacheのインストール
Chefの設定
設定を書くのは面倒ですが、設定してしまえば楽です。ApacheもPHPもcomposerもChefに設定するだけでインストール出来てしまいます。すごい。というわけでこちらの記事を参考に設定しました。
Vagrant+Virtualboxを使いWindows10上にCentOS7.3+php7+MySQL5.7の環境を構築する – Qiita
ちなみに後に「php-pdoがない」と怒られたので、その設定も追加しています。