vagrantでCentOS5 + php5.3 + mysql5.5の開発環境構築 その2

前回の続きはです。　→　[その１](http://qiita.com/miyumiyu/items/b9dbd6cf63c2b44ceab8)

boxファイル用の綺麗なCentOS5が出来ましたので、次はパッケージをどんどこ入れてboxファイル化していきます。　　

## 6.必要なパッケージのインストール

今回必要なのはapache、php5.3(ius)、mysql5.5、memcachedとなります。
（phpはモジュール色々と）

### 6-1. 必要と思われるリポジトリの登録
とりあえず、必要と思われるリポジトリを登録していきます

```shell-session
curl -L -O http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm
rpm -ivh rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm
rm rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm

rpm -ivh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/CentOS/5/x86_64/ius-release-1.0-14.ius.centos5.noarch.rpm
``` 

上から順に、【rpmforge】【epel】【ius】です。

### 6-2. apacheのインストール

```shell-session
yum install httpd
```

### 6-2. mysql 5.5のインストール

```shell-session
yum install mysql55.x86_64 mysql55-server.x86_64
```

### 6-3. memcachedのインストール

```shell-session
yum install memcached.x86_64 memcached-devel.x86_64
```

### 6-4. phpのインストール

php53u関連を入れるので、リポジトリは【ius-archive】になります
あと、必要と思われるモジュール関係も一気に入れます。

```shell-session
yum install --enablerepo=ius-archive php53u.x86_64 php53u-gd.x86_64 php53u-mbstring.x86_64 php53u-mcrypt.x86_64 php53u-mysql.x86_64 php53u-pear.noarch php53u-pecl-apc.x86_64 php53u-pecl-memcache.x86_64 php53u-pecl-xdebug php53u-xml.x86_64

yum install php-pear-Auth-SASL.noarch php-pear-DB.noarch php-pear-Log.noarch php-pear-MDB2.noarch
```

### 6-5. phpMyAdminのインストール

```shell-session
yum install phpmyadmin
```

## 7.ソフトの設定

### 7-1.mysqlの設定（立ち上げ）

- mysqlが問題なく立ち上がるかどうか確認

```shell-session
/etc/init.d/mysqld start
```
- 開発環境なので、どこからでもrootログインできるようにセキュリティ無視設定

```sql
mysql -u root

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
```

### 7-2.apacheの設定

- ユーザ、グループをvagrantにする  
（vboxsf配下にマウントされてる場所をドキュメントルートとして使うため）

```shell-session
vi /etc/httpd/conf/httpd.conf

User vagrant
Group vagrant
※上の行を書き換え

```

- ドキュメントルートをvboxsfでマウントされた位置に変更  
（windows側から手軽に扱うため）

```shell-session
vi /etc/httpd/conf/httpd.conf

DocumentRoot "/vagrant/www"
※上の行を書き換え

```

### 7-3.phpMyAdminの設定

- httpdのユーザがapacheからvagrantに変更となったため

```shell-session
chgrp vagrant /usr/share/phpmyadmin/config.inc.php
chgrp vagrant /var/lib/php/session/
```

- 秘密のパスフレーズが必要なので、config.inc.phpに適当な文字列を入れる

```shell-session
vi /usr/share/phpmyadmin/config.inc.php

$cfg['blowfish_secret'] = 'abc1234';

↑　この行の後ろに適当な文字列を入れる
```

## 8.起動設定

### 8-1.apache、mysql、memcachedを自動起動するようにする

```shell-session
chkconfig httpd on
chkconfig mysqld on
chkconfig memcached on
```

### 8-2.apacheの起動を調整する

vagrantでvboxsfファイルをマウントするときにマウントまで時間がかかるため、apacheのドキュメントルートをvboxsfにした場合、apache起動時にドキュメントルートが存在せずapacheの起動に失敗するため、apache起動スクリプトに少々sleepを入れて誤魔化す

```shell-session
vi /etc/init.d/httpd

start() {
        echo -n $"Starting $prog: "
        sleep 24  ←★追加（waitさせて、マウントしてから動くようにする）
        check13 || exit 1

```
※数字の２４は適当


## 9.設定終わりなので一度haltでシステムを止める

```shell-session
shutdown -h now
```

haltでシステムを止めます

## 10.vagrant boxファイルの作成

Windows上から、以下のコマンドでboxファイルを作成

```shell-session
vagrant package --base CentOS5
```
※baseの後ろは仮想環境の名前です。
（[その１の４番](http://qiita.com/miyumiyu/items/b9dbd6cf63c2b44ceab8#%EF%BC%94virtual-box%E3%81%ABcentos-511%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)で名前は適当にとしたところです）

【package.box】が出来るのでわかりやすい名前にリネームするとよろしいかと思います。

## 12.boxファイルの登録
windowsのコマンドプロンプトから以下のコマンドでboxファイルを登録します
（boxファイルはリネームしてないとします）

```shell-session
vagrant box add C5debug package.box
```

※addの後ろの文字列はわかりやす仮想マシンの名前を付けます


## 11.Vagrantfileの作成及び修正

起動に必要なVagrantfileを作成します
windowsのコマンドプロンプトから

```shell-session

vagrant init C5debug

```

同一フォルダにVgrantfileが出来ますので、メモ帳か何かで開いて中身を一部修正します。

```ruby
# config.vm.network "forwarded_port", guest: 80, host: 8080
   
   ↓この行をコメントアウト＆一行追加

 config.vm.network "forwarded_port", guest: 80, host: 8080
 config.vm.network "forwarded_port", guest: 3306, host: 13306
```

※httpdのポートとmysqlのポートのポートフォワーディングの設定です


### 12.vagrantの起動

起動の前にapacheのドキュメントルートをwindows側に設定しましたので起動を行うフォルダ上にドキュメントルートを作成します。　その後起動を行います。

```shell-session
mkdir www  
※ドキュメントルートの作成

vagrant up
```

※これで問題がなければ普通に起動します。

これらの設定で

|ホストOSでのポート|仮想マシン上のポート|用途| 
|---|---|---|
|2222|22 |ssh|
|8080|80|http|
|13306|3306|mysql|


|ホスト側フォルダ|アクセスURI| 備考|
|---|---|---|
|作業フォルダ/www|http://localhost:8080/|ドキュメントルートなので必ず必要|
| なし |http://localhost:8080/phpmyadmin|phpMyAdminにアクセスします|

※作業フォルダはvagrant upを行ったフォルダとなります。