is Neet

ネトゲしながら暮したい

さくらVPSに、Rails3.1.1、MongoDB、Git、RVMなどを構築するときの手順

webサービスをリリースするにあたって、どうしてもテストサーバが欲しかったので、さくらの一番安いプランでVPSを借りました。
僕は非常に忘れっぽいので、Railsを起動して動作確認出来るまでのメモを残しておきます。
間違ってることもあるかもしれません。
環境は以下の通り。

  • Fedora14
  • Rails 3.1.1
  • MongoDB


Fedoraのインストール

以下の通りにやればおk。
http://support.sakura.ad.jp/manual/vps/mainte/custom_fedora.html



GroupとUserの追加
Fedoraインストール時に作成したrootユーザでsshログイン。
まずはグループの作成。

# groupadd -g xxx admin

xxxの部分は適当に。adminの部分に好きな名前をどうぞ。


次にユーザの作成。
xxxはさっき作成したグループのIDで。devの部分はお好きな名前でどうぞ。

# useradd -u yyy -g xxx -d /home/dev -m dev

yyyの部分は、

# cat /etc/passwd

で重複の無いIDを確認して指定すると良いです。


次に作成したユーザのパスワード作成

# passwd dev


次にsudoの度にpasswordを求められるのがダルいのでその設定

# visudo

開いたファイルの最終行に
%admin ALL=(ALL) NOPASSWD: ALL
を追加


これでdevユーザが作成されたので、一度ログアウトして、再度sshで接続確認するといいかも。
これ以降は上記で作ったユーザで作業します。



Gitのインストール
僕の場合は、今回のVPSはテストサーバに使いたかったので、Gitも入れます。
色々必要になりそうな物をついでに入れておきます。

$ yum install wget
$ yum install gccyum install make
$ yum install zlib
$ yum install zlib-devel
$ yum install perl-ExtUtils-MakeMaker
$ yum install tcl
$ yum install git

簡単ですね。



MongoDBのインストール
今回のプロジェクトはMongoDBを使っているので入れます。
MySQLと比べてなんと楽なインストールでしょうか。。

$ sudo yum -y install mongodb mongodb-devel mongodb-server

もう起動します。素晴らしい。

$ sudo /etc/init.d/mongod start



RVMのインストール
Rubyはrvmで管理します。

$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
$ source ~/.bashrc

1.9.2を入れるのですが、普通にいれてRailsを動かそうとすると、「linecache19」というgem関連で怒られます。多分。。
まぁ僕の環境ではopensslがどーのと言われて怒られました。なのでinstallする時に指定してあげましょう。
ついでにbundleくらいはinstallしましょう。

$ rvm install 1.9.2 --with-openssl-dir=$HOME/.rvm/usr
$ rvm 1.9.2
$ gem install bundle



ssh公開鍵の作成
僕は別のVPSにgitosisを構築して運用しているので、テストサーバでもリポジトリからcloneしてくるために、ssh公開鍵を作成しておきます。

$ ssh-keygen -t rsa


次にリポジトリからcloneする為に.ssh/configを作成しておきます。

$ vi ~/.ssh/config

ファイルの内容は以下の感じで。
xxxな部分は各々の環境に合わせて記述してください。
Host部分には好きな名前を設定してください。

$ cat ~/.ssh/config
Host hoge.vps
  Port xxxx
  HostName xxx.xxx.xxx.xxx
  IdentityFile ~/.ssh/id_rsa.pub

あとは、scpとかでこのユーザの~/.ssh/id_rsa.pubをローカルに持ってきて、gitosis.confにユーザ名を追加して
keydir/以下に、~/.ssh/id_rsa.pubの名前をユーザ名.pubに変更して置いて、pushすればおk。
で、再度、VPSに接続すればcloneできるハズ。

$ git clone git@hoge.vps:project_name.git



bundle install
無事、プロジェクトをclone出来たら、bundle install。

$ bundle install --path vendor/bundle

なにやら途中であれこれエラーが出るのでまとめて対処

$ sudo yum -y install flex libxml2-devel
$ sudo yum -y install libxslt-devel
$ sudo yum -y install gcc-c++



3000番ポートを解放する
iptablesこわい。バックアップとって作業。

$ sudo cp /etc/sysconfig/iptables /etc/sysconfig/iptables.org
$ sudo vi /etc/sysconfig/iptables




以上の設定が全部終われば、無事、 http://xxx.xxx.xxx.xxx:3000/ にアクセス出来ると思います。
ああ疲れた。




======追記======


rails consoleを使う

$ sudo yum install readline-devel
$ cd ~/.rvm/src/ruby-1.9.2-p290/ext/readline/
$ ruby extconf.rb
$ make
$ make install