VirtualBoxにCentOS6.xのVMを作った時のメモ

# CentOS 6.xのインストール
VirtualBoxにCentOS6.xのVMを作った時のメモ。
主に自分用。
開発用VMなのでいろいろガバガバです。

書き忘れてましたがホスト機はWindows 7 Professional (64bit) / VirtualBox 4.3.26です。

あと、netinstall.isoからMinimal構成でインストールしてますが、minimal.isoでもいいし、（超絶無駄だけど）フルパッケージ版でminimalインストールしてもたぶんいいと思います。
（TODO:そのうち気が向いたら試してみる。）
開発用VMなので、構成はminimalでその他余計なものは入れなくていいです。
（といいつつDevelopmentToolsを入れてますが...これはまぁいいよね？）

それから、文中では6.3のISOを使ってますが、6.xのnetinstall.isoならたぶんどれでも大丈夫です。


## 1. VM作成
- 名前：CentOS_xxx
- タイプ：Linux
- バージョン：Red Hat (64bit)
- メモリーサイズ：1024 MB
- ハードドライブ：仮想ハードドライブを作成する
- ハードドライブのファイルタイプ：VDI
- 物理ハードドライブにあるストレージ：可変サイズ
- ファイルの場所とサイズ：20 GB
    - 可変サイズなので20 GBいきなり使われるわけではないし、小さいと後々泣くことになるので大きめにしておく。

## 2. 初期設定
- システム
    - プロセッサー
        - プロセッサー数：2
- ストレージ
    - コントローラー: IDEにCentOS-6.3-x86_64-netinstall.isoを設定
- ネットワーク
    - アダプター2を追加（ホストオンリーアダプタ）


## 3. 起動
（特筆なし）


## 4-1. インストール(1)
- Install or upgrade an existing system
- Disk Found: skip
- Choose a Language: English
- Keyboard Type: jp106
    - us配列の場合はusみたいなやつ。たぶんデフォルトがそれだったと思う。
- Installation Method: URL
- Networking Device: eth0
- Configure TCP/IP:
    - [\*] Enable IPv4 support
    - [&nbsp;]  Enable IPv6 support
- URL Setup: http://ftp.riken.jp/Linux/centos/6/os/x86_64/


## 4-2. インストール(2)
- Basic Storage Devices
- Yes, discard any data
- Hostname: xxx.localhost
- Configure Network
    - System eth1
        - [\*] Connect automatically
        - (必要ならば)DHCPではなくIP固定設定
        - (DHCPならばおそらく)192.168.56.101が割り当てられるが、再起動後に`ifconfig`で確認するがよろし。
        - 色々なVMを作っていると同時起動した時に意図しないIPになる可能性があるので、固定にしたほうが良い。
        - 固定にしたらホスト機のhostsに適当に書いておくとなお良い。
            - `192.168.56.201 xxx.localhost` など。
- Asia/Tokyo
- Root Password: xxxxxxxxxx
- Use All Space
- Write changes to disk
- Minimal & Customize now
- Development: [\*] Development tools
    - バージョンとか気にしないならミドルウェア群もここで入れてしまってもいいのかも？
- isoアンマウントしてreboot


## 5-1. とりあえず(1) とりあえず...
- とりあえずrootでログインして以下を実施

```bash
# とりあえず色々アップデートしとく
yum -y update

# 一般ユーザ追加
useradd xxxxx

# 追加したユーザのパスワード設定
passwd xxxxx

# 追加したユーザでsudoできるようにする
visudo
# root ALL=(ALL) ALLの下に追加
xxxxx ALL=(ALL) ALL
# そのちょっと上にあるDefaults secure_path = ・・・の後に追加
:/usr/local/bin

# とりあえず(2)をやるために再起動
reboot
```


## 5-2. とりあえず(2) VBox Guest Additionsのインストール
- Guest AdditionsのCDイメージを挿入
- とりあえずrootでログインして以下を実施

```bash
# /mediaにCDをマウント
mount /dev/cdrom /media

# VBoxLinuxAdditions(拡張パックみたいなやつ)をインストール
cd /media
./VBoxLinuxAdditions.run

# CDをアンマウント
cd /
umount /media

# 有効にするため再起動
reboot
```


## 5-3. とりあえず(3) vimインストール
- ここからは一般ユーザでSSHでおｋ

```bash
# とりあえずdotfilesをgithubから持ってくる
git clone https://github.com/xxxkurosukexxx/dotfiles

# .vimrcをシンボリックリンクはって有効化（次のシェルで自動的にやるからやらなくてもいい）
ln -s ~/dotfiles/.vimrc .vimrc

# vimを強くするためのシェル
# （必要なパッケージ追加してソースからビルド、rootでも快適(?)に使えるようにリンクなど。詳しくはシェルの中身参照。）
cd dotfiles
chmod +x 99_setupVim.sh
./99_setupVim.sh
```


## 5-4. とりあえず(4) slのインストール
- [sl (UNIX) - Wikipedia](http://ja.wikipedia.org/wiki/Sl_(UNIX))

```bash
cd /usr/local/src
sudo git clone https://github.com/mtoyoda/sl.git
cd sl
sudo make
sudo ln -s /usr/local/src/sl/sl /usr/local/bin/
cd ~
sl
```


## 5-5. とりあえず(5) svn1.6 -> 1.7にアップデート
- 1.6は色々と困るので1.7にしておく。
    - ちなみにCentOS7.xなら1.7がふってくる。
- rpmforgeは最新のバージョンを確認して入れる。（今のところ↓でOK）

```bash
sudo yum -y install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
sudo yum -y erase subversion
sudo yum -y install --enablerepo=rpmforge-extras subversion
svn --version
```


## 6. 色々インストール
- 必要な物をyumまたはソースから入れる。（今回はApache+PHPだけ）

```bash
sudo yum -y install httpd httpd-devel httpd-tools php php-cli php-common php-devel php-mbstring php-pear
```
- centos6.xだとPHPが5.3.3なので、もっと新しいものが必要ならremi repoから入れるがよろし。（3行目のremi-phpxxの部分はバージョンを入れる。5.5ならremi-php55）

```bash
sudo yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo yum -y install --enablerepo=remi --enablerepo=remi-phpxx php php-cli ...(ry
```


## 7. 色々設定
- 各種ミドルウェアを必要に応じてセッティング
- 起動時に起動させたいサービスは`sudo chkconfig hogehoge on`
    - yumから入れたら勝手になる？ //TODO:確認
- 設定を変更したら`sudo service hogehoge restart`
- [iptables](http://ja.wikipedia.org/wiki/Iptables)の設定変更（ポート開放） or iptables封印
    - `sudo vim /etc/sysconfig/iptables`
    - > -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
- [SELinux](http://ja.wikipedia.org/wiki/SELinux)も必要なら封印（ほんとはよくない。ちなみに設定ミスると最悪OS起動しなくなるらしい）
    - `sudo vim /etc/sysconfig/selinux`
    - `SELINUX=disabled`
    - `sudo reboot`


## おしまい
とりあえずこんな感じでとりあえず最低限の環境構築は完了。
あくまでも開発用のローカルVMの構築手順（オレ用）なので、セキュリティ的な部分とかはガバガバ。
その辺は各自必要に応じて他の記事を参照してください。この記事より有用な記事がQiitaにはたくさんあると思います。

おしまい。