Help us understand the problem. What is going on with this article?

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
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした