Edited at

Vagrant+CentOS6.5+Apache+PHP+Mysql+CakePHPの環境構築 その①

More than 3 years have passed since last update.

キリが悪かったので追記しました。

おそがけながら、必要になったので。

なんとなくVagrantを理解してきたよーな。。。

慣れたら一瞬で仮想マシン構築できるから、これは便利だわ。

って、今頃思ってます。

次はCakePHP導入まで行く。。。。ぞ。。。


用意するもの


Vagrantのインストールと使い方

VirtualBoxは入れるだけ。

Vagrantのインストールが終わったら、コンソールでバージョンコマンドを打ってみてレスポンスが返ってきたらOK。


console

$ vagrant -v



Boxファイルを追加

Vagrantが使う仮想マシンイメージをBoxファイルを言うらしいので、

リンク先のリストから目当てのboxファイルを探してCopy!!

今回は「CentOS 6.5 x86_64」を使うので「centos65」って名前でboxファイル追加


console

$ vagrant box add centos65 CopyURL


box listコマンドで表示されたら追加OK。


console

$ vagrant box list



vagrant box コマンド



  • vagrant box add boxの追加


  • vagrant box list boxの表示


  • vagrant box remove boxの削除


  • vagrant repackage よくわかりません


仮想マシン初期化&起動

事前に用意した作業フォルダに移動して、初期化呪文を唱える。


console

$ cd /your/work/directory  ##作業フォルダに移動

$ vagrant init centos65 ##さっきつけたboxファイル名を指定して詠唱

そしていよいよ。。。

雑念を捨てながら、祈りながら、仮想マシンを起動。


console

$ vagrant up


読み込みが終わったら、SSHで仮想マシンへアクセス


console

$ vagrant ssh


プライベートキーのパスフレーズを聞かれるけど無視してenter

ログインパスワードを聞かれるのでvagrantを入力


vagrant 仮想マシン操作系のコマンド



  • vagrant status 状態確認


  • vagrant suspend スリープ


  • vagrant resume スリープ解除


  • vagrant halt シャットダウン


  • vagrant reload 再起動


  • vagrant destroy 仮想マシンを削除

もっとコマンド調べたい時はここ

https://docs.vagrantup.com/v2/cli/index.html


Apache導入とVagrantfile

ちょっと普通のCentOSの設定とは勝手が違ってちょっとコケた。

キーポイントはVagrantfileにあり。


Apacheインストール

まずはお約束のyum updateを実行した後、Apacheをインスコ。

(今回はローカルでの環境構築が主要素なので、セキュリティ周辺やらなんやらは割愛)


console

$ sudo yum update  ##お約束

$ sudo yum install httpd ##Apacheインスコ

インスコしたら、Apache起動してマシン起動時に一緒に立ち上がるように設定。


console

$ sudo service httpd start  ##Apache起動

$ sudo chkconfig httpd on ##マシン起動時に立ち上がるおまじない


Vagrantfileを編集

Vagrantで仮想マシンを作るとルートにvagrantというフォルダが出来ていて、その中にあるVagrantfileを編集する。

コメントと一緒にだらだらーっと書かれてあって、ちゃんと読めばいいんだけど、このごろ目がショボショボして。。。

なので、コメントを削除してスッキリさせるとこう。


console

$ cat /vagrant/Vagrantfile



/vagrant/Vagrantfile

# -*- mode: ruby -*-

# vi: set ft=ruby :

Vagrant.configure(2) do |config|

config.vm.box = "centos65"

# config.vm.box_check_update = false

#config.vm.network "forwarded_port", guest: 80, host: 8080

# config.vm.network "private_network", ip: "192.168.33.10"

# config.vm.network "public_network"

# config.vm.synced_folder "../data", "/vagrant_data"

# config.vm.provider "virtualbox" do |vb|
# # Display the VirtualBox GUI when booting the machine
# vb.gui = true
#
# # Customize the amount of memory on the VM:
# vb.memory = "1024"
# end

# config.push.define "atlas" do |push|
# push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
# end

# config.vm.provision "shell", inline: <<-SHELL
# sudo apt-get update
# sudo apt-get install -y apache2
# SHELL
end


それぞれの設定項目については公式参照

http://lab.raqda.com/vagrant/vagrantfile/machine_settings.html

ちゅーことで、ポート設定の行のコメントアウトを外す。


console

$ vi /vagrant/Vagrantfile



/vagrant/Vagrantfile

#config.vm.network "forwarded_port", guest: 80, host: 8080

↓ コメントアウト外す
config.vm.network "forwarded_port", guest: 80, host: 8080

このままだと、Vagrantfileの設定が反映しないので、仮想マシンを再起動。


console

$ exit ##仮想マシンログアウト

$ vagrant reload ##仮想マシン再起動

再起動が終了したら、http://127.0.0.1:8080/ にアクセスしてApacheの画面が表示されればOK。


Vagrantfileの詳しい設定方法

公式ドキュメント参照

http://lab.raqda.com/vagrant/vagrantfile/index.html


Vagrantのフォルダ同期について

vagrant initした作業フォルダと、仮想マシンの/vagrantの中が同期しているみたい。

試しに仮想マシン側で何か適当なファイルを作ると、作業フォルダにも同じファイルが生成されるし、Vagrantfileも同期される。