delalunaofficedaysのブログ

WORDPRESSとEC CUBEくらいしか触っていないWEBデザイナーの日記とかメモ。

Vagrantで簡単に共有できる仮想環境を構築する

Vagrantって言葉をよく聞くようになってきたので試したくなった。 プロジェクト毎に独立した環境が用意できるって結構素敵なことだなあ。 その開発環境の構築と共有を簡単に行うためのツールということで興味が湧いたので早速使ってみることに。

https://www.vagrantup.com/ https://www.vagrantup.com/downloads.html ここからダウンロードできるようなので早速ダウンロード。

使用しているOSによってインストールの方法は違うけどここではMac OS X ElCapitan (10.11.6)を前提にします。

Vagrantのインストール

https://www.vagrantup.com/

VirtualBoxのインストール

https://www.virtualbox.org

ここらへんでBOXを探します。BOXってのはVagrantで使える中身のOSイメージね。

https://atlas.hashicorp.com/boxes/search

http://www.vagrantbox.es/

CentOS7.0が欲しいのでhttp://www.vagrantbox.es/よりコピー。

BOXを追加する。

[code] vagrant box add CentOS70 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box [/code]

BOXが追加出来たかチェック。

[code] $ vagrant box list [/code]

使用するディレクトリの準備

[code] $ mkdir -p ~/Vagrant/CentOS70/ $ cd ~/Vagrant/CentOS70/ [/code]

初期化。

[code] $ vagrant init CentOS70 [/code] Vagrantfileという設定ファイルが作成されます。

VM起動。

[code] $ vagrant up –provider virtualbox [/code]

vagrant up コマンドで自分の環境ではエラーになった。 [code] An error occurred while downloading the remote file. The error message, if any, is reproduced below. Please fix this error and try again. [/code]

エラー解決法:

[code] $ vagrant plugin install vagrant-vbguest [/code]

再度VM起動。

[code] $ vagrant up [/code]

起動しました。

SSH接続(VMにログイン)

[code] vagrant ssh [/code] デフォルトでは ユーザー名: vagrant rootのパスワード: vagrant になってました。

VM終了

[code] vagrant halt [/code]

VM上で保存したデータは、 [code] vagrant destroy [/code] で環境を破棄するまでは保存されています。

ネットワーク設定

[code] vim Vagrantfile [/code]

[code] config.vm.network "private_network", ip: "192.168.33.10" [/code]

この部分のコメントアウトを外す。

PHPの環境を構築したい

PHPのインストール [code] $ sudo yum install php [/code]

apacheのインストールと起動。 [code] $ sudo yum install httpd $ sudo service httpd start [/code]

再起動してもApacheが起動するように。

[code] sudo chkconfig httpd on [/code]

ファイアーウォールを切る(ローカル開発環境だから問題ないと思う) [code] sudo service iptables stop sudo chkconfig iptables off [/code]

さらにMySQLを使いたい。ついでにwgetも欲しい。 [code] $ sudo yum install mysql-server php-mysql wget [/code]

MySQLを自分好みに設定 [code] $ sudo vi /etc/my.cnf [/code] [code] [mysqld] default-character-set = utf8 [mysql] default-character-set = utf8 [/code] 上記設定にしてみた。

MySQLを起動 [code] sudo /etc/rc.d/init.d/mysqld start [/code]

起動時にMySQLも一緒に起動する設定をしておく。 [code] chkconfig mysqld on [/code]

rootでログインできるかな? [code] mysql -u root [/code]

できますね。

Apache再起動しておく [code] $ sudo service httpd restart [/code]

Mac側に戻ってリロードしておく。 [code] vagrant reload [/code]

プロビジョニング(Provisioningとはvagrant upした後に実行される一連の処理のこと。ここまで手動でやったhttpdの設定などを自動化する。)別にやらなくてもいいけど環境を誰かと共有するなら。 [code] vagrant provision [/code]

index.htmlファイルなんかを作ってみるといいかも。 [code] $ cd /var/www/html $ sudo vi index.html [/code]

この設定で192.168.33.10にアクセスできるのでブラウザで http://192.168.33.10にアクセスし、index.htmlページが表示されれば成功です。

手軽に環境構築できる、という触れ込みだったけどはたして手軽なのか何なのか。 まあ慣れれば手軽に思えますね。