Edited at

Vagrant環境構築(Mac)

More than 3 years have passed since last update.

開発環境を構築するツール。

とりあえず、コマンドだけでなんとかする。

自分用カキコ。

参考 : vagrantドキュメント


必要ツール



  • HomeBrew >> ぱっけーじ管理じゃーまねー。

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew install caskroom/cask/brew-cask #brew cask インストール

brew cask install virtualbox vagrant #virtualbox, vagrant インストール
vagrant plugin install vagrant-hostsupdater #仮想環境起動時に自動でホスト名をIPアドレスに追加。


vagrant基礎コマンド

vagrant up       #仮想環境立ち上げ

vagrant status   #現在のvagrantの状態

vagrant suspend  #スリープ

vagrant resume   #スリープ復帰

vagrant halt     #停止

vagrant reload   #再起動

vagrant destroy  #仮想マシン削除

vagrant ssh      #仮想マシン接続

vagrant ssh-config >> ~/.ssh/config #ssh_configを保存(出力)


初期設定


  • boxの種類

  • ↑で選んで[ boxURL ]部分にURL貼ってEnter。

  • [ box名(登録名) ]は任意で名前をつける。あとで分かるように。

  • box インストールは時間掛かる。

vagrant add box [ box名(登録名) ] [ boxURL ] 

#例 vagrant box add CentOS_6.4_x86_64 http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20131103.box


vagrantさくっと環境構築一連の手順

mkdir VagrantTest             #場所はお好きなところで、名前もお好きなもので

cd VagrantTest #フォルダ作成
vagrant box list #初期設定でインストールしたboxを確認
vagrant init [ box名(登録名) ] #初期化
vagrant up #仮想環境立ち上げ
vagrant ssh #仮想マシン接続

# vagrant ssh仮想環境にログイン後

echo "alias ll='ls -la'" >> .bashrc #alias追加
source .bashrc #.bashrc再読み込み
sudo yum -y update #yumあっぷでーと
sudo yum -y install php #php,httpdインストール
httpd -v #httpd バージョン確認
sudo service httpd start #web鯖起動
sudo chkconfig httpd on #httpd有効
sudo service iptables stop #ファイアーウォール停止
sudo chkconfig iptables off #iptables 鯖再起動後もoffにしておく
exit #vagrant環境内から出る

# httpd 停止させたい場合
sudo service httpd stop

# httpd 現在のステータス確認
sudo service httpd status

# vagrant環境内からexitするとVagrantfileがあるので編集

config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "forwarded_port", guest: 80, host: 4567

#Vagrantfile更新後、一度リロード

vagrant reload

上記のコメントアウト部分を(#)を外す

192.168.33.10 をWebブラウザで接続するとApache 2 Test Pageが表示される。

また、/etc/hostsに

#例えば

192.168.33.10 local-test-page.jp.vm

記載後に

#DNSのキャッシュが残っている場合はこれで対応

sudo /usr/sbin/apachectl restart

#DNSのキャッシュを消す場合
sudo killall -HUP mDNSResponder

ブラウザでサイトを再読み込みすると、設定した【local-test-page.jp.vm】で閲覧できるようになる。

❊ ハマったこと ❊

Mac側のApacheが動かしているとVM上のApacheを見に行かないのでMac側のApacheは停止されること。

参考: macでhosts設定の手順メモ


シンボリックリンク設定

今後ローカルでファイルを編集し、vagrant環境と連動させるためにシンボリックリンクを設定。

vagrant ssh

cd /vagrant
sudo rm -rf /var/www/html
sudo ln -fs /vagrant /var/www/html

テストでページでバージョン確認してみる

#Vagrantfileの階層

touch index.php


index.php

<?php

phpinfo();
?>

local-test-page.jp.vm でPHP情報が表示される。


PHP設定

最低限の設定をする。

vagrant ssh

sudo cp /etc/php.ini /etc/php.ini.org
sudo vi /etc/php.ini


/etc/php.ini

#エラーログの保存場所を変更

;error_log = php_errors.log
#変更後: error_log = /tmp/log/php_errors.log

#日本語の設定を有効に
;mbstring.language = Japanese
#変更後: mbstring.language = Japanese

#内部エンコーディングをUTF-8に変更
;mbstring.internal_encoding = EUC-JP
#変更後: mbstring.internal_encoding = UTF-8

#HTTPでの入力のエンコーディング
;mbstring.http_input = auto
#変更後: mbstring.http_input = auto

#エンコーディングの自動判別
;mbstring.detect_order = auto
#変更後: mbstring.detect_order = auto

#PHP情報をメッセージヘッダに記述しない
expose_php = On
#変更後: expose_php = Off

#タイムゾーンの設定
;date.timezone =
#変更後: date.timezone = Asia/Tokyo

# error_log 設定

sudo touch /var/log/php_errors.log
# 権限変更
sudo chown apache:apache /var/log/php_errors.log

# わざとエラーログ出して確認してみる。
# tailでログを追跡
tail -f /var/log/php_errors.log

sudo service httpd restart

最後にhttpd 再起動する


vagrantにvimをインストール

vagrant ssh

sudo yum install ncurses ncurses-devel mercurial (諸々インストール)
cd /usr/local/src
sudo hg clone https://vim.googlecode.com/hg/ vim
cd vim
sudo make && sudo make install
vim —version
echo "alias v='vim'" >> .bashrc


vagrantにMySQLインストール

vagrant ssh

sudo yum -y install mysql mysql-server mysql-devel


/etc/my.cnf

[mysqld]

character-set-server=utf8
default-storage-engine=InnoDB
innodb_file_per_table

[mysql]
default-character-set=utf8

[mysqldump]
default-character-set=utf8


┗ sudo vi /etc/my.cnf で行わないと編集できなかった。

sudo service mysqld start   (mysql起動)

/usr/bin/mysql_secure_installation (このまま叩くと起動。実行後、rootパスワード設定、その他全てyes)
sudo chkconfig mysqld on
mysql -u root -p
ログイン成功


vagrant + vccw

# git cloneする

git clone https://github.com/vccw-team/vccw

# site.yml作成
cp provision/default.yml site.yml

# 立ち上げる
vagrant up

# site.yml変更時の反映
vagrant provision