VirtualBoxとCentOSでLAMP環境を作った


PHPのテスト環境が必要になったためせっかくなのでドットインストール見ながらやってみた時のメモ。

__参考リンク__
[Vagrant入門 (全13回) - プログラミングならドットインストール](http://dotinstall.com/lessons/basic_vagrant)
[ローカル開発環境の構築 (全13回) - プログラミングならドットインストール](http://dotinstall.com/lessons/basic_local_development_v2)
[コマンドライン | Vagrant日本語ドキュメント](http://lab.raqda.com/vagrant/cli/index.html)
[『VirtualBox』でLAMP環境を構築する際に参考になるサイト・ブログ記事まとめ - NAVER まとめ](http://matome.naver.jp/odai/2136246821336246101)


## Vagrant Boxを取得する
公式サイトからVagrantをダウンロード。
gemからでも可能。

[Vagrant公式サイト](http://www.vagrantup.com/)

ボックスのダウンロード用URLを取得。
[A list of base boxes for Vagrant - Vagrantbox.es](http://www.vagrantbox.es/)


## Boxを追加する

```bash
$ vagrant box add [Box名] [srcのURL]
$ vagrant box list
```


## 仮想マシンを入れるディレクトリを作成、先ほどダウンロードしたboxをもとに仮想マシンを作成

```bash
$ mkdir [ディレクトリ名]
$ cd [ディレクトリ名]
$ vagrant init [box名で指定]
$ vagrant up 
```


## vagrant 操作コマンド例
- destroy 仮想マシン削除
- ssh　ssh接続
- status　状態確認
- suspend　状態保存

## WEBサーバーのインストール


```bash
$ vagrant ssh
#vagrantユーザーでログインします。

% sudo yum -y install httpd
#WEBサーバーインストール

% sudo service httpd start
#起動

% sudo chkconfig httpd on
#自動起動設定

% sudo service iptables stop
% sudo chkconfig iptables off


```



## Vagrantfile開いてネットワーク設定

```bash
$ vi Vagrantfile
#private_networkを検索してその行のコメントアウトを削除

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

## ブラウザからアクセスしてみる
ブラウザに先ほどのprivate_networkに記述されているipアドレスでアクセスする、表示されればOK

_ココから仮想マシンにログイン状態は%、ホストPCは＄で_

## 共有フォルダの設定
※許可がありませんって出るのはsudoを先頭につけて

```bash
$ vagrant ssh
% cd /vagrant
% touch test
% ls
Vagrantfile test

% exit 
$ ls
Vagrantfile test

#これで/vagrantディレクトリが共有されていることが確認できる

$ vagrant ssh
%rm -rf /var/www/html
#デフォルトのルートディレクトリ削除

% ln -fs /vagrant /var/www/html
#ルートに設定されているディレクトリに共有ディレクトリのシンボリックリンク設定

% exit

$ vi index.html

--index.htmlに記述
<h1>HELLO WORLD from mac</h1>
--
:wqで保存する
ブラウザ上で確認出来たらOK

```

## vagrant boxの起動が早くなる記述
（詳細はあまり理解できてません。。）

```bash
$ vagrant ssh
% vi /etc/resolv.conf

--resolv.conf1行目に追加
options single-request-reopen
#これ↑
; generated by /sbin/dhclient-script
nameserver 10.0.2.3
--
```

## hosts設定
[RedWinder::MacApp::Hoster](http://www.redwinder.com/macapp/hoster/)

## PHP,MySQLのインストール

```bash
#インストール時にはphpのバージョンに注意
% yum info|grep php

% sudo yum -y install php php-pear php-devel php-mbstring php-mysql php-pdo php-xml

% sudo yum install mysql-server
% sudo service httpd restart 
% sudo service mysqld start
% sudo chkconfig mysqld on

```
今回はインストール後の各設定は変更せず、ローカル環境でするし、エラーでたらそれはそれで勉強になると思いそのままに。
 
その他ドットインストールで紹介されていたリポジトリ
epel,remi
 
これで一応LAMP環境がそろいました。
## 他にやったこと

* vim のインストール

[CentOS 6.3にVim 7.3をインストールする - Qiita](http://qiita.com/muniere/items/0569d05d470c5d3dc51b)

```bash
$ yum install mercurial
$ yum install ncurses-devel
$ cd /usr/local/src
$ hg clone https://vim.googlecode.com/hg/ vim
$ cd /usr/local/src/vim
$ ./configure --enable-multibyte --with-features=huge --disable-selinux --prefix=/usr/local
$ make
$ make install
```
* manコマンドのインストール

[Linux(CentOS 6) - yum installコマンドでmanパッケージをインストールする - r_nobuホームページ](http://nobuneko.com/blog/archives/2013/05/linux_centos_6_yum_install_man.html)

* Provisioningの利用

vagrant up後に自動で処理をするための設定

```bash
#vagrant initで初期化した後に、、
#config.vm.box = “box名”の下の行に追加
$ vi Vagrantfile

-—Vagrantfile
config.vm.provision :shell, path => “provision.sh"
-—

#provision.shを作成
$ vi provsion.sh
#この中に記述したコマンドが構築後に自動で実行される
--provsion.sh
sudo yum -y install httpd
sudo service httpd start
sudo chkconfig httpd on
--

$ vagrant up (既に起動している場合はvagrant provision)
```

これで自動でWEBサーバーをインストールし、自動で起動する設定もされる
###その他
vagrantのデフォルトのパスワードはvagrant