開発環境を構築するツール。
とりあえず、コマンドだけでなんとかする。
自分用カキコ。
参考 : vagrantドキュメント
必要ツール
- HomeBrew >> ぱっけーじ管理じゃーまねー。
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- HomeBrew Cask >> HomeBrewの拡張ばーじょん。
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