快適!! お名前VPS(KVM)にUbuntu12.04をインストールし、Nginx と Unicorn で Rails アプリを動かす
お名前 VPS (KVM) 2GB プランを契約したので、Ubuntu 12.04 LTS をインストールしてみました。
ついでに Rails が動く環境を作るところまでやったので、その過程を共有します。
初期セットアップ
お名前 VPS を契約して最初にコンパネにアクセスすると CentOS 6.2 がデフォルトで、初期パスワードの入力を求められます。とりあえず最初は CentOS をインストールしないといけないみたいです。おとなしくパスワードを入れて次に進みます。
SSH-Key の選択も出てきますが、デフォルトのままにしました。
Ubuntu 12.04 LTS をインストールする
CentOS のインストールが終わったら、コンパネから「OS再インストール」タブを選択し、Ubuntu 12.04 LTS (64bit) を選択します。
その他の設定はお好みで。今回は以下のようにしました。
- Ubuntu 12.04 LTS 64bit
- Virtio: ON
- Disk: 200GB + 0GB
コンソール画面
コンソール画面でインストール設定を行います。以下のように設定しました。
- Install
- Japanese (English とかのほうがいいかも。文字化け対策に。)
- 地域: 日本
- キーボード
- Japan
- ネットワークが自動設定される
- ホスト名はデフォルト
- Ubuntu アーカイブのミラー
- 日本 (jp.archive.ubuntu.com)
- HTTP Proxy なし
- ユーザーアカウント
- Full Name: お好みで。
- Account Name: お好みで。便宜上 user とする
- パスワード: ****
- Home ディレクトリの暗号化: NO
- Timezone: Asia/Tokyo
- ディスクのパーティショニング
- ディスク全体を使う
- 仮想ディスク1 を選択
- 既存のデータを削除: YES
- ディスクに変更を書き込む: YES
- インストールが始まります
- アップデートの設定
- 自動的にアップデートしない (Default)
- ソフトウェアの選択
- デフォルトのまま (すべて選択しない)
- GRUB ブートローダのインストール
- YES
- システム時間を UTC にするかどうか
- いいえ
- インストール完了
- コンパネ画面上部の「取り出す」ボタンでインストールディスクを排出しておく
インストールはこんなかんじです。コンパネのコンソールだと何かと不便なので、ssh 接続できるように設定します。
$ sudo aptitude install ssh
$ sudo service ssh start
(公開鍵認証とかにしたほうがいいと思うけど割愛。)
環境を整える
ここから Mac の Terminal で作業していきます。
まずはアップデート。インストール時にアップデートが入ってると思うけど一応。
$ ssh user@hostname (サーバーに接続) $ sudo aptitude update $ sudo aptitude upgrade
Vim が入ってなかったのでインストール
$ sudo aptitude install vim
ファイアーウィールの設定
とりあえず ssh のみ許可。
$ sudo ufw status 状態: disabled $ sudo ufw enable $ sudo ufw default REJECT $ sudo ufw allow 22/tcp
パッケージにインストールされているものから選ぶ事もできる。
$ sudo ufw app list OpenSSH $ sudo ufw allow "OpenSSH"
ビルド環境
Ruby などのビルドに必要なパッケージをインストールします。
$ sudo aptitude install build-essential libreadline-dev libssl-dev zlib1g-dev libssl-dev libssl1.0.0 libsqlite3-dev git-core curl
RVM
Ruby 環境は RVM で整えます。
$ curl -L https://get.rvm.io | bash -s stable --ruby $ source /home/user/.rvm/scripts/rvm $ echo "source /home/user/.rvm/scripts/rvm" >> .bash_profile
Rails アプリを立ち上げる
Rails アプリのディレクトリに移動して以下のように設定する
$ bundle install $ bundle exec rake db:setup $ bundle exec rake assets:precompile $ bundle exec unicorn_rails -E production -D
こうすると 127.0.0.1:8080 でサーバーが起動します。
Nginx
フロントには nginx を使うので、nginx をさくっとインストールします。
$ sudo aptitude install nginx $ sudo ufw allow "Nginx Full" $ sudo vim /etc/nginx/conf.d/backend.conf upstream backend { server 127.0.0.1:8080; } server { listen 80; server_name _; location / { proxy_set_header HOST $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; proxy_pass http://backend; proxy_redirect off; } }
今回はログとか asset の設定をしてないので、そのへんをちゃんと設定する。
おわり
かなり長くなってしまったので、端折ってる部分もありますが、だいたいこんな感じでした。
安くて高性能な VPS が簡単に手に入るようになったので遊び倒したいです。
オマケ
Pythonbrew をこっそりインストール
上記の「ビルド環境」でインストールしたもの以外にも必要なパッケージがあるので、それらをインストールしてから Pythonbrew をインストールします。
$ sudo aptitude install libncurses-dev libgdbm-dev tk-dev libdb4.8-dev $ curl -kL http://xrl.us/pythonbrewinstall | bash $ echo "[[ -s $HOME/.pythonbrew/etc/bashrc ]] && source $HOME/.pythonbrew/etc/bashrc" >> .bash_profile $ source ~/.pythonbrew/etc/bashrc $ pybrew install 2.7.3 $ pybrew switch 2.7.3
build.log に以下のようなメッセージが出ているけど、おそらく古すぎて使うことがないので無視。
Python build finished, but the necessary bits to build these modules were not found:
bsddb185 dl imageop
sunaudiodev
これで Python でもたっぷり遊べます!