いまさらもう誰も話もしてない Vagrant の Windows7 64bit 版で開発環境を作るために、
主にドットインストールを見ながら、てんてこまいしたときのメモです。
メモというわりには長くなってしまいました。
いろいろインストールしよう
VirtualBox を入れる
仮想化した環境を立ち上げて別のOSを準備できるフリーソフト。
全部デフォルトでインストール。
https://www.virtualbox.org/
途中「このデバイスソフトウェアをインストールしますか?」というウィンドウが 名前:Oracle Corporation で4回出てくるので全部「インストール」をクリック。
今のところは CentOS や FreeBSD といった OS を使ったサーバーとしての環境を、ひとつのボックスというディスクイメージにまとめてくれている、という理解(間違っているかもしれない)。
Vagrant を入れる(ベイグラントと読む)
仮想化した環境を作るのに便利なツール。環境構築・設定・破棄が簡単にできる。
全部デフォルトでインストール。
https://www.vagrantup.com/
ローカルサーバーを構築しよう
仮想サーバーを作る
- ターミナルで
pwd
して今の場所を確認してみる - フォルダ「centos6.5」を作って移動。
mkdir centos6.5
→cd centos6.5
-
vagrant init chef/centos-6.5-i386
でテンプレとなるBoxを取得する準備 - その他の OS はここから見れる https://atlas.hashicorp.com/boxes/search
- Vagrantfile というファイルができるので
open Vagrantfile
-
config.vm.network "private_network", ip: "192.168.33.10"
と書いてある行の先頭の # を削除して保存 -
vagrant up
で今の状態でcentosを立ち上げてくれる - とりあえず待つ。Boxのダウンロード→起動までしてくれているらしい。ダウンロードはこのへん(
C:\Users\username\.vagrant.d\boxes
)にしてくれているらしい。ちょっと時間がかかるけどいろいろ聞かれてもOK OK で OK -
Warning: Connection timeout. Retrying...
が何度も出るようなら下記を参考にVagrantfile を編集。でもこれしなくてもとりあえず起動はできているらしい。 - http://kiririmode.hatenablog.jp/entry/20140331/p1
-
vagrant box list
で今ある Box の一覧を表示 -
vagrant box remove xxx
でxxx の Box を削除 でもフォルダは残るみたい -
vagrant halt
で電源OFFvagrant up
で電源ON -
vagrant suspend
で一時停止vagrant resume
で復帰 -
vagrant reload
で再起動 -
vagrant destroy
で設定した環境を破棄。
サーバーにログインして環境設定する
-
vagrant ssh
で仮想サーバーにログイン。パスワードナシで入れる。ルートフォルダが[vagrant@localhost ~]$
になっていればよい。 -
sudo yum -y install git
で Git をインストール。 -
sudo yum -y install httpd
で httpd をインストール。 -
sudo service httpd start
で httpd を起動。 -
sudo service httpd status
で起動されてるのを確認。Running..となってればよい。 -
sudo chkconfig httpd on
で 再起動後も httpd を起動できる。 -
exit
でログアウト
設定した仮想サーバーをBoxにしておく
- 設定が終わったフォルダの下で
vagrant package
としてやると、Boxを作ってくれる。サーバーが立ち上がっている場合はシャットダウンする。結構時間がかかる。 -
ls
するとちゃんと package.box というファイルができているのがわかる。 - これを
C:\Users\username\.vagrant.d\boxes
に追加して Box として使えるようにするにはvagrant box add xxxxxx package.box
とすればよい -
ls ~/.vagrant.d/boxes
するとちゃんとできてるのがわかる。 - package.box は削除してOK。
rm package.box
-
vagrant init xxxxxx
で使えるようになっている。 - これやると次に up したときエラーがでるんだけど
sudo /etc/init.d/vboxadd setup
でエラーがでたものをyum install kernel-devel-2.6.32-504.8.1.el6.i686
とかインストールして再起動したらエラーが出なくなった。ググっていろんな人のページをみてとりあえずなおったけど、なんでなおったか仕組みがよくわからない。box にしておくまで問題なかったのに、その後なんでエラーが出るようになったのかもわからない。
Hello World してみる
-
cd /var/www/html/
sudo vi index.html
でi
で編集モードに入り、Hello World と書いて Esc キーを押して編集モードから脱出して:wq
で保存。するとおぉ、192.168.33.10で見れた見れた。ハローワールド。 - でも普段はターミナル上で編集しなくても
sudo rm -rf /var/www/html
をしてsudo ln -fs /vagrant /var/www/html
とやってあげれば、フォルダ「centos6.5」の直下とホームディレクトリが共有されます!なのでそこに index.html とか置いてあげればOK!ドットインストールで「あら不思議」って言っていて、ほんとにそう思いました。vagrant を入れてからずっと、「仮想って、ほんとの意味で仮想・・なのね・・?てことは、毎回 WinSCP 立ち上げてそこで作業とかターミナル上とかで作業しないといけないの・・?みんなそんなふうに開発してるの・・?いやそんなわけないっしょ、ローカルにフォルダ作れるはずでしょ、でもどーやってーっ?実際にファイル置くディレクトリどこなんだよぉぉぉ」という疑問が抜けずに一生懸命「vagrant ディレクトリ」とか「vagrant ホーム」とか「vagrant www」とか「vagrant 実際にファイルを置く」とか「vagrant フォルダ」とか検索していて、まさか「共有フォルダ」とかいう概念がここで出てくるなんてわからずに、全部素通りしていました。検索時にやたらと「共有フォルダ」という言葉が出てくるのはこのことだったのね・・と、ほんとうに感激しました・・ため息。素人はいらん検索などせずに、はよドットインストールを進めろ。といいたい。 - C:\Windows\System32\drivers\etc\host を管理者権限で編集するとIPアドレスじゃなくても見れる。
192.168.33.10 dev.example.com
とかするとみやすい。 - ここまでのは、基本のき、って感じで、ほんとうは php を入れたり mysql を入れたり OS を実際のサーバーと同じのを入れたりしないと使えない。まだまだ道は遠い。。
参考文献
http://dotinstall.com/lessons/basic_localdev_win
http://dotinstall.com/lessons/basic_vagrant
http://theneutrals.io/defwd/defwd-sample.pdf