さくらのVPSをお試しで使い始めた

VPS(仮想専用サーバー)|さくらインターネット - 無料お試し実施中
さくらのレンタルサーバだと、ソフトウェアを自由にインストールできなくて、Ruby on Railsで作ったアプリケーションを動かすにしても制約が多い。さくらのVPSなら、月額980円でソフトウェアを自由にインストールできる仮想サーバが利用できる。というわけで、試しに使ってみる事にした。
というわけで、Railsで作ったアプリを動かすまでに色々設定した作業を記録しておく。

参考資料

http://akabeko.sakura.ne.jp/blog/category/web/
http://tech.qalafl.com/?p=14
CentOS初心者なので、この辺りの情報を参考にしました。

アカウント設定

http://akabeko.sakura.ne.jp/blog/2010/09/%E3%81%95%E3%81%8F%E3%82%89%E3%81%AEvps-%E3%82%92%E4%BD%BF%E3%81%84%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B/#vps01_root_user
これを参考に、以下を実施。

  1. rootのパスワード変更
  2. 作業用ユーザ追加
  3. 作業用ユーザで認証鍵を使ったSSHのログイン設定
  4. サーバーのSSH設定を変更 rootのログインとパスワードによるログインを no に変更
  5. システムの更新

SSHのログインは、Mac OS Xから実行したので、認証鍵を使ったSSHのログイン設定は、さくらのレンタルサーバ向けに以前やったのと同様に実施。
さくらのレンタルサーバにSSHでログインしてみた - NAT’s Programming Champloo

SSHログイン時に何も操作しない時間が長いと、ネットワーク接続が切れるのか、コンソールが固まる事が頻発した。そこで、サーバから1分間何も通信がなかったときに、通信する設定にするため、Mac OS X上で下記のconfigファイルを作成した。

$ cat ~/.ssh/config
ServerAliveInterval 60

Phusion Passengerのsub URI設定

http://www.modrails.com/documentation/Users%20guide%20Apache.html#deploying_rails_to_sub_uri
1つのサーバ名で、複数のRailsアプリを動かしたかったので、サブURIにデプロイする設定にした。例えば、下記のような対応関係にする。

  • http://xx.xx.xx.xx/sample1/ -> sample1アプリ
  • http://xx.xx.xx.xx/sample2/ -> sample2アプリ

そのための httpd.conf は、下記のようになる。

<VirtualHost *:80>
   ServerName xx.xx.xx.xx
   DocumentRoot /var/www/phusion
   <Directory /var/www/phusion>
      AllowOverride all
      Options -MultiViews
   </Directory>

   RackBaseURI /sample1
   <Directory /var/www/phusion/sample1>
      Options -MultiViews
   </Directory>

   RackBaseURI /sample2
   <Directory /var/www/phusion/sample2>
      Options -MultiViews
   </Directory>
</VirtualHost>

ここでRailsアプリがRails 3の場合、サブURIの指定に「RackBaseURI」を使うのがポイント。Phusion Passenger users guideに記載の「RailsBaseURI」を使うと、以下のようなエラーメッセージが表示されて、動作しない。

No such file to load -- application

というような事が、下記のページに書いてあった。
http://wiki.railsplayground.com/railsplayground/show/How+To+use+Phusion+Passenger
どうやら、Phusion Passengerのバグらしい。これが分かるまで、2時間近くかかった・・・。

Railsアプリでsqlite3を使うときのGemfile

rails 3がデフォルトで出力する設定ファイルは、DBMSにsqlite3を使う設定になっているが、さくらVPSCentOS上で bundle install を実行すると、sqlite3をインストールしようとして失敗してしまう。
色々試した結果、Gemfileの下記の記述がうまく動かない模様。

gem 'sqlite3'

そこで、下記のように変更して、sqlite3ではなくsqlite3-rubyを使う設定にしたら、うまく動いた。

# gem 'sqlite3'
gem 'sqlite3-ruby', :require => 'sqlite3'