開発環境構築メモ|VirtualBoxとVagrantで開発環境を作成

プログラミングをするにあたって、まず最初に躓くのが開発環境の構築です。

本番環境のサーバーで開発したり、わざわざテスト用のサーバーを借りるのはコストがかかります。
ローカル(自分のPC)にLinux(CentOS)をインストールするために、一番楽な方法をメモします。

全体の手順

①VirtualBoxをインストールする
②Vagrantをインストールする
③コマンド(ターミナル)でVagrantfileを作成する
④Vagrantfileの中を編集する
⑤Vagrantを起動する
⑥仮想マシン内のCentOSにSSH接続する

①VirtualBoxをインストールする

まず、ローカル(自分のPC)の中に、仮想環境を作ります。
いわば、別のサーバーを入れるための空間づくりです。
下記サイトから適切なバージョンをダウンロードしてください。
https://www.virtualbox.org/wiki/Download_Old_Builds

②Vagrantをインストールする

Vagrantは、仮想環境にOS(Linuxなど)を一発でインストールしたり、環境の状態を保存したりするツールです。
下記サイトから適切なバージョンをダウンロードしてください。
https://www.vagrantup.com/

③コマンド(ターミナル)でVagrantfileを作成する

ターミナルを立ち上げ、「cd」コマンドで現在地を操作。
CentOSを入れたいディレクトリを作成するなどして、そのディレクトリ内で

$ vagrant init bento/centos-6.7

を打ち込みます。
※initの後は、Box名です。下記URLより、「CentOS」などと検索し、Boxファイルを指定して下さい。
https://atlas.hashicorp.com/boxes/search
すると、Vagrantfileが作成されます。

④Vagrantfileの中を編集する

③で指定したBox名が、Vagrantfileの中で
config.vm.box = “bento/centos-6.7”
のように記述されていることが分かります。

仮想マシンを使うにあたり、このファイルを2箇所変更します。
<1点目>
ローカル(自分のPC)のポート番号と、仮想マシン内のWEBサーバーのポート番号とをひも付けます。
# config.vm.network “forwarded_port”, guest: 80, host: 8080
と書いてある部分の「#」を外します。
これで、localhost(自分のPC)の8080番が、仮想マシンの80番と繋がることになります。

<2点目>
プライベートネットワークを作成し、自分のPCから仮想マシンにアクセスできるようにします。
# config.vm.network “private_network”, ip: “192.168.33.10”
と書いてある部分の「#」を外します。
これで、仮想マシンのIPアドレスは「192.168.33.10」に割り当てられます。
つまり、ブラウザに「192.168.33.10」と打ち込むと、仮想マシンにアクセス可能になります。

<3点目(任意)>
ローカルのフォルダと、仮想マシン内のフォルダを共有することができます。
これは、開発する上で非常に便利です。(FTPソフトで都度通信してもいいですが、面倒です)
# config.vm.synced_folder “../data”, “/vagrant_data”
と書いてある部分の「#」を外します。
最初のパスには、ホストマシン側のパスを、
次のパスには、仮想マシン側のパスを設定します。
pwdコマンドで位置を確認してパスを設定して下さい。

※他にも、「シンボリックリンク」を利用する方法があります。
ただし、設定が見えにくい(コマンド確認)のが難点。
参考:http://ferretdayo.hatenablog.com/entry/2016/03/12/000753

※シンボリックリンク、シンクロともに、サーバーで確認できない場合があります。
SELinuxの設定が原因のことが多いです。
参考:http://little-braver.com/552/
このとき、configファイルがパーミッションの関係で編集できない場合がありますが、
CentOSに適当なユーザー(vagrantなど)でログインした状態で、「su」コマンドを打ち込みます。
パスワードを入力すると、”root”権限になるので、configが編集できるようになります。

⑤Vagrantを起動する

いよいよサーバー(CentOS)を立ち上げます。
Vagrantfileと同じ階層で、コマンドは

$ vagrant up

です。
これで仮想マシンが起動します。

⑥仮想マシン内のCentOSにSSH接続する

⑤で、無事仮想マシンを立ち上げたわけですが、現状は最小限のデスクトップも何も無い状態です。
仮想マシン内の設定をするにあたって、ホストマシン(自分のPC)から仮想環境の中の仮想マシンにログインする必要があります。
SSHという接続をすることで、ログインすることができます。
コマンドは、

$ vagrant ssh

です。
ここから、必要なプログラム(PHPやらRubyやらGitやら)をインストールしていって、CentOSをカスタムしていきます。
長くなるのでここまで。