さくらのVPSをお試しで使い始めた
VPS(仮想専用サーバー)|さくらインターネット - 無料お試し実施中
さくらのレンタルサーバだと、ソフトウェアを自由にインストールできなくて、Ruby on Railsで作ったアプリケーションを動かすにしても制約が多い。さくらのVPSなら、月額980円でソフトウェアを自由にインストールできる仮想サーバが利用できる。というわけで、試しに使ってみる事にした。
というわけで、Railsで作ったアプリを動かすまでに色々設定した作業を記録しておく。
参考資料
http://akabeko.sakura.ne.jp/blog/category/web/
http://tech.qalafl.com/?p=14
CentOS初心者なので、この辺りの情報を参考にしました。
アカウント設定
SSHのログインは、Mac OS Xから実行したので、認証鍵を使ったSSHのログイン設定は、さくらのレンタルサーバ向けに以前やったのと同様に実施。
さくらのレンタルサーバにSSHでログインしてみた - NAT’s Programming Champloo
SSHログイン時に何も操作しない時間が長いと、ネットワーク接続が切れるのか、コンソールが固まる事が頻発した。そこで、サーバから1分間何も通信がなかったときに、通信する設定にするため、Mac OS X上で下記のconfigファイルを作成した。
$ cat ~/.ssh/config ServerAliveInterval 60
セキュリティ対策
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-2/
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-3/
何も対策しないのは恐いので、最低限の対策として、以下を実施。
Railsを動かすためのソフトウェアのインストール
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-4/
まずはWebサーバApacheのインストール。
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-6/
http://www.modrails.com/
続いて、ruby 1.8.7ベースのRuby Enterprise Editionと、Railsアプリを動かすためのPhusion Passengerを入れる。
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を使う設定になっているが、さくらVPSのCentOS上で bundle install を実行すると、sqlite3をインストールしようとして失敗してしまう。
色々試した結果、Gemfileの下記の記述がうまく動かない模様。
gem 'sqlite3'
そこで、下記のように変更して、sqlite3ではなくsqlite3-rubyを使う設定にしたら、うまく動いた。
# gem 'sqlite3' gem 'sqlite3-ruby', :require => 'sqlite3'