概要
最近、Boxを再構築した際に、「Vagrant開発環境のワークフローをちゃんとまとめておきたい」と思ったのでまとめてみました。 レポジトリにほぼ同じワークフローメモがあります。
github - bmf-san/vagrant-development-workflow
前提
以下のアプリケーションがホストマシン(Mac)にインストールされていること
環境
ホストマシン(Mac)
- macOS Sierra v10.12.2
仮想環境
- CentOS6.7
構築手順
-
開発環境ディレクトリにて、Vagrantfileを作成する
vagrant init
-
Boxテンプレートを取得し、Boxを作成する
vagrant box add BOX_NAME /path/to/box/url- BOX_NAMEは任意の名前を指定
- Boxのダウンロード先はVagrantbox.es
- CentOS6.7を使用
-
vagrant-hostupdaterのインストール
vagrant plugin install vagrant-hostsupdater- Hostsーホストマシン(Mac)でホストのGUI管理に便利なアプリ
-
Vagrantfileの編集
- Box Nameの設定
- Networkの設定
- Synced Folder(共有フォルダ)の設定
- Providerの設定(Vagrantパフォーマンス向上が目的)
- Host Updaterの設定
- xdebugの設定(任意)
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
# Box Name
config.vm.box = "centos6.7"
# Network
config.vm.network "private_network", ip: "192.168.33.10"
# Synced Folder
config.vm.synced_folder "/path/to/directory", "/var/www/html",
:owner => "apache",
:group => "apache",
:mount_options => ["dmode=775,fmode=664"]
# Provider(Optional)
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--paravirtprovider", "kvm"]
end
# Host Updater
config.vm.network :private_network, ip: "192.168.33.10"
config.vm.hostname = "localdev"
config.hostsupdater.aliases = ["localdev-hoge"]
# xdebug(Optional)
config.vm.network :forwarded_port, host: 3000, guest: 3000
end
-
Vagrantの起動と接続
vagrant upー起動vagrant sshーssh接続vagrant reloadー再起動vagrant haltー停止vagrant provisionープロビジョニング(ホストの更新)
-
Apacheのインストール
yum install httpdーApacheのインストールservice httpd startーサーバー起動chkconfig httpd onーログイン時自動起動設定
-
Apacheの設定
cd /etc/httpd/conf.dvim localdev-hoge.confーホスト別の設定ファイルを作成(localdev-hogeでアクセスできるように設定)
<VirtualHost *:80>
ServerName localdev-hoge
ServerAdmin localhost
DocumentRoot /var/www/html/path/to/directory
<Directory "/var/www/html/path/to/directory">
AllowOverride All
</Directory>
</VirtualHost>
service httpd restartーサーバー再起動で設定を反映
Learn More
- 各種必要なアプリケーション(php, mailcatcher, xdebug, webgrind etc...)をインストールし、開発環境を構築すること