さくらVPSでRuby on Railsを動かすメモ

Ruby on Rails (+ Passenger) のテスト環境を さくら VPS に作ってみたメモです。

http://vps.sakura.ad.jp/images/mainImg.gif

契約

さくらのVPS|VPS(仮想専用サーバ)はさくらインターネットから申し込むと、カード決済の場合数時間で「[さくらのVPS] 仮登録完了のお知らせ」というメールが来ます。ここにサーバーのIPアドレス、ログイン・パスワード等が書かれています。

  1. 月々980円ですが、最初は利用料金2ヶ月分の1,960円が請求されます。
  2. DNSサーバーのサービスは別オプションです。ドメイン取得業者のDNSサービスが使えない場合は、DNSサーバーの料金が必要になります。

サーバーの起動

*2010/10/4追加*

仮登録完了メールが来た時点ではサーバーは起動されていませんので、メールに書かれた VPSコントロールパネル ログイン情報のURLをアクセスし、IPアドレス、パスワードを入力してログインすると下のような画面が表示されます。

ここで、仮想サーバ操作の「起動」ボタンを押すとサーバーが起動されます。サーバーの起動には少し時間がかかります。左メニューの「リモートコンソール」をクリックするとサーバーのコンソール画面が表示され、Linuxが起動される状況を確認できます。

設定

初期設定では root で外部から sshログインできるので root でログインしたら、自分用のアカウントを作りsudoの設定を行い、sshdの設定を変更しsshの root ログインを禁止した方が良いと思います。

また、iptables(ファイアーウォール)やSELinuxの設定はされてなので、必要があればして下さい。

OSは CentOS 5.5 です。がんばると他のOSもインストールできるようです・・・

インストール

サーバー類は最低限しかありませんので必要なサーバーは自分でインストールする必要があります。

Apache
sudo yum install httpd.x86_64 system-config-httpd.noarch httpd-devel.x86_64
sudo /sbin/chkconfig  --add httpd
sudo /sbin/service httpd start

http://サーバーのIP でapacheが動く事を確認して下さい。

Ruby

まず、Ruby on Railsを動かすのに必要な Rubyの拡張ライブラリー zlib, openssl の開発環境(header/lib)をインストールして下さい。

sudo yum install zlib-devel.x86_64
sudo yum install openssl-devel.x86_64

yumRuby は1.8.5 なので 最新の Rubyコンパイルしていれます。今回は既存のアプリの関係もある 1.8.7 をインストールしました。ruby は /usr/local/binに入りませすので PATH に /usr/local/binが在ることを確認して下さい。

cd InstallWorks
wget wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p302.tar.gz
tar xzf ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p302.tar.gz
cd ruby-1.8.7-p302
./configure
make
make test
sudo make install # テストが成功したら
gem
cd InstallWorks
wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz
tar xzf rubygems-1.3.7.tgz
cd rubygems-1.3.7
sudo ruby setup.rb
sudo gem update --system
sqlite3

バージョン 3.6.16 以上の sqlite3が必要なので、これもソースからインストールします。

cd InstallWorks
wget http://www.sqlite.org/sqlite-amalgamation-3.7.2.tar.gz
tar xzf sqlite-amalgamation-3.7.2.tar.gz
cd sqlite-amalgamation-3.7.2
./configure
make
sudo make install
Ruby on Rails

今回は既存のアプリの関係もある 2.3.8 をインストールしました。

sudo gem install rake
sudo gem install -v 2.3.8 rails
sudo gem install sqlite3-ruby

簡単なRailsアプリを作りscript/server で動作することを確認して下さい。

Passenger
sudo gem install passenger
sudo passenger-install-apache2-module   # 画面表示に注意しながら

/etc/httpd/conf/httpd.conf にmod_passengerを追加

LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15
PassengerRuby /usr/local/bin/ruby

/etc/httpd/conf/httpd.conf などにテスト用Railsアプリの VirtualHost を追加

例 -- サーバーにはドメイン名(下の例ではtest.XXXX.com)が付いている必要があります

<VirtualHost *:80>
   ServerName test.XXXX.com
   DocumentRoot /home/rails_app/test/public
   <Directory /home/rails_app/test/public>
      AllowOverride all
      Options -MultiViews
   </Directory>
</VirtualHost>

Apache をリスタート

sudo /sbin/service httpd restart

ブラウザーから http://test.XXXX.com をアクセスし動作確認。詳細は users guidを。

Git

Ruby on Rails 開発といえば git ^^) ということで git も入れました。

yum では git をインストルできないようなので、ソースからインストールしまいた

cd InstallWorks
wget http://kernel.org/pub/software/scm/git/git-1.7.3.tar.bz2
tar xjf git-1.7.3.tar.bz2
cd git-1.7.3/
./configure
make
make test   # かなり時間がかかるので急ぎなら省略しても良いかも?
sudo make install

適当なリポジトリーを clone して動作を確認

以上。

感想

  • さくらVPS 早い(軽い)ですね。この状況が続くといいなぁ〜
  • CentOS5.5 はRuby on Rails を動かすには色々なソフトが古い ^^);