LoginSignup
0
0

More than 1 year has passed since last update.

Vagrant + Vitualboxで仮想環境を作る[Mac版]

Posted at

インストールとBoxの取得

最初に仮想マシンを入れるフォルダを作っておきます。今回はtestCentosという名前で作成しました。

$ mkdir testCentos //仮想マシン用のフォルダ作成
$ cd testCentos //作成したフォルダに移動

Vagrant  https://www.vagrantup.com/downloads
Virtualbox  https://www.virtualbox.org/ をそれぞれ公式サイトから
ダウンロードし、表示されるままインストールを進めます。
vagrant -vとターミナルで打ち込んでVagrant 2.2.15等のバージョンが返ってくればインストールできています。

次にboxを取得します。boxは仮想マシンの雛形のようなものです。
boxのurlは http://www.vagrantbox.es/ からコピーできます。

$ vagrant box add [boxにつけたい名前] [boxのurl]

今回はCentOS 7.0 x64を使ったので

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

となります。

==> box: Successfully added box 'centos' (v0) for 'virtualbox'!

成功すると上記の表示が出ます。

$ vagrant box list

でboxが追加できてるか確認します。

最後にboxを初期化します。このときに仮想マシンの設定が記述されているVagrantfileが生成されます。

$ vagrant init centos //boxの名前

boxの取得をする前に起動させたり、初期化し忘れているとエラーが出るので注意。

起動と接続

$ vagrant up 

でvagrantを起動させます。

$ vagrant status

で状態を確認し、runningであれば起動できています。

$ vagrant ssh

でssh接続し、([Vagrant@localhost ~ ]と表示されてればログインは成功しています。

ApacheとPHPをインストール

ここからwebサーバーにアクセスしてブラウザに表示させる為に、webサーバーであるapacheをインストールします。

$ sudo yum -y install httpd

を打ちます。

Vagrant@localhost~の@より前の部分がVagrantになっていますが、これだと書き込みができない第三者的なものなので、このままインストールやらフォルダ作成をしようとすると権限がない!と怒られます。
なので先頭にsudoコマンドをつけます。
またはsudo suでrootユーザーに切り替えても同じようにインストールやら書き込みが出来るようになります。
元のユーザーに切り替えるときはsu [切り替えたいユーザー(今回だとvagrant)]で元に戻れます。

$ sudo service httpd start
$ sudo systemctl enable httpd.service

でサーバーを起動させます。ついでに常時起動するようにしておきます。

次に、ファイアウォールの切断

$ sudo systemctl stop firewalld
$ sudo systemctl disable firewalld
$ sudo systemctl status firewalld

切断できていれば Active: inactive (dead) と表示されます。

ホストOSとゲストOSとのフォルダ共有の為のプラグインをインストール

$ vagrant plugin install vagrant-vbguest
$ vagrant plugin list

vagrant-vbguest (0.29.0, global)等が返ってくればインストールできています。

$ sudo yum install php

PHPをインストール

Is this ok [y/d/N]: y

途中これでいですか?と聞かれるのでyを選択。
php -vと打ってバージョン等の表示が返ってくればインストールできています。

ブラウザからページが表示されるか確認

今のままだとアクセスできないのでターミナルからVagrantfileの記述を変更します。

$ vi Vagrantfile  //Vagrantfileを編集

iキーを押してインサートモードに切り替えたら下記の箇所を変更。

# config.vm.network "private_network", ip: "192.168.33.10"    //変更前 
config.vm.network "private_network", ip: "192.168.33.10"    //変更後

先頭の#を消してコメントアウト状態から有効にします。

次にconfig.vm.synced_folderの設定を変えます。これはホストOSとゲストOSのフォルダを同期するものです。先頭の#を消して、config.vm.synced_folderの後ろにホストOSのパスとゲストOSのパスを指定します。
今回はVagrantfileと同じ階層にdataというフォルダをホスト側で作り、その中にファイルを入れていき、仮想環境上の/var/www/htmlと同期させています。

# config.vm.synced_folder "../data", "/vagrant_data"  //変更前

config.vm.synced_folder  "./data", "/var/www/html"  //変更後

編集が終わったらescキー→:wq→enterで上書き保存します。
保存ができたらvagrant reloadで再起動させます。

最後にブラウザに表示する用にdataフォルダの中にindex.phpファイルを作成します。

index.php
<?php
 phpinfo();
?>

192.168.33.10のアドレスにアクセスして phpinfoが表示されていれば完了です。

使う必要がなくなったらexitでログアウトし、vagrant haltで電源を切って終了です。

最後に

PHPの勉強をするにあたってVagrantとVirtualboxを使って仮想環境を作ったのですが、なかなか苦戦したので忘れないうちに備忘録としてまとめようと思いました。
修正などあればコメントでご教示いただけると嬉しいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0