さくらVPSのUbuntuにRuby1.9.3とRails3.2.2とApacheとPassengerインスコ

備忘録ついでに。

###Ubuntu10.04インストール
ここは下記ページの内容まんま。
http://support.sakura.ad.jp/manual/vps/mainte/custom_ubuntu.html
※やたら長い時間青い画面のまま放置されます。体感的に5分は放置されてる気分に陥ります。我慢です。

###SSHとPutty
VNCは色々とアレなんで早急にPuttyに。
まずは `sudo apt-get install vim` でvimを入れる。

`mkdir -m 700 ~/.ssh`
`cd ~/.ssh`

``` ssh-keygen
$ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/mickey/.ssh/id_rsa): [空でEnter] 
Enter passphrase (empty for no passphrase): [sshのパスワード]
Enter same passphrase again: [sshのパスワードをもう一度]
Your identification has been saved in .ssh/id_rsa_sakura.
Your public key has been saved in .ssh/id_rsa_sakura.pub.
The key fingerprint is:
01:23:45:67:89:ab:cd:ef:01:23:45:67:89:ab:cd:ef mickey@local
The key's randomart image is:
+--[ RSA 2048]----+
省略
```

`chmod 600 .ssh/id_rsa .ssh/id_rsa.pub`
`mv id_rsa.pub authorized_keys`

id_rsaをVPSから作業用PCに持ってくる。(SFTPとかで)
Puttygetでid_rsaをインポートしてid_rsa.ppkをエクスポート。

`sudo vi /etc/ssh/sshd_config` でsshの設定。

``` sshd_config 差分
x Port 22
o Port [1024より上の適当な数字]

x PermitRootLogin yes
o PermitRootLogin no

x #PasswordAuthentication yes
o PasswordAuthentication no
```

そしてファイアウォールの設定

``` ufw
sudo ufw default deny
sudo ufw allow [sshで設定したポート]
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
```

`sudo /etc/init.d/ssh restart`

これでPuttyからSSHのポート、エクスポートしたid_rsa.ppk、ホストネームを指定してログイン。
鍵認証無しだとログインできないようになりましたとさ。

###Ubuntu10.04 -> Ubuntu11.10
LTSは一気にアップグレードできないので、10.04(LTS) → 10.10 → 11.04 → 11.10の順にアップグレード。

`sudo apt-get install update-manager-core`
`sudo vi /etc/update-manager/release-upgrades`
`Prompt=lts` を `Prompt=normal` に変更して保存。
`sudo do-release-upgrade` で10.10にアップグレード。

もう一度 `sudo do-release-upgrade` で11.04にアップグレード。
もう一度 `sudo do-release-upgrade` で11.10にアップグレード。
※途中の選択肢はデフォのままでとくに問題なかったです。

###rvmとruby1.9.3
`apt-get install curl`
`bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)`
~/.bash_loginに書かれている `[[ -s ～` を.bashrcに貼り付ける。
`source .bashrc`

`rvm requirements`
以下の、For Rubyの部分をsudo aptget installする。
![rvm requirementsの結果](http://gyazo.com/add67d83b92b850efddc1f9b161a836c.png)

```
rvm pkg install openssl
rvm install 1.9.3
rvm use 1.9.3 --default
```

###rails3.2.2

```
rvm gemset create rails 322
rvm gemset use rails322 --default
gem update --system
sudo apt-get install nodejs
sudo apt-get install zlib1g-dev
cd ~/.rvm/src/ruby-1.9.3-p125/ext/zlib
ruby extconf.rb
make
make install
gem install rails
```

###Apache+Passenger

```
sudo apt-get install apache2
gem install passenger
passenger-install-apache2-module
```

すると多分怒られるのでEnterで進んでいくと、足りない依存ライブラリを教えてくれる。
![passenger-install-apache2-moduleの結果](http://gyazo.com/2f3e9ee70d7039a0cb098596501e76fd.png?1333014773)
なので、それぞれをsudo apt-get installで入れる。
通ると、httpd.confに貼るべき内容を表示してくれるので、それをhttpd.confに貼る。
`vim /etc/apache2/httpd.conf`
![passenger-install-apache2-moduleの結果その2](http://gyazo.com/9dfa0d958036e9fc61e2d70f882566a7.png?1333014737)

``` VirtualHost
<VirtualHost *:80>
  ServerName 動かすWebアプリのURL
  DocumentRoot 動かすWebアプリのpubicディレクトリ(今回の場合は /home/kokudori/HelloRails/public)
</VirtualHost>
```
上記をhttpd.confに追記する。

`sudo /etc/init.d/apache2 restart`

**終了！**