さくらのVPSでRubyOnRailsの環境を構築しよう

Ruby On Rails

さくらのVPSでRails環境構築しました。
高速と名高いKVM環境はたしかに高速でした。(といっても計測してないので体感ですが・・)
あとServersMan@VPSに比べるとネットワークが安定しているような気がしましたけど気のせいでしょうか。
Rails3系を入れようか迷ったけど愛用しているgemライブラリでまだ3系には対応できていないのがあったのでまたの機会にすることに。
それにしてもVPSが価格下落で気軽にRails環境が構築できるようになったのは嬉しい話しです。
ImageMagickやらRedmineも入れてますが、必要ない人は飛ばしてやってください。

さくらVPSでRubOnRails

さくらVPSにRubyOnRailsの環境構築をしたのでそのメモ。
今回インストールした主なソフトウェアのバージョン。
・Ruby 1.8.7 p301
  → http://www.ruby-lang.org/ja/
・RubyGems 1.3.7
 → http://rubyforge.org/projects/rubygems/
・Rails2.3.8
  → http://rubyonrails.org/
・Passenger
  → RailsをApache上で動かすために必要にライブラリ
  → http://www.modrails.com/
・ImageMagick 6.6.6
  → 画像処理用のソフトウェア
  → http://www.imagemagick.org/script/index.php
・Redmine
  → プロジェクト管理用のフリーソフト
  → http://redmine.jp/
・Gemライブラリ諸々
  → mysql
  → will_paginate
  → gettext
  → rmagick 

CentOSの不要なデーモンを停止します

ただでさえ少ないメモリですので、CentOSでデフォルト動いているサービスを停止してしまいます。

chkconfig acpid off
chkconfig auditd off
chkconfig autofs off
chkconfig avahi-daemon off
chkconfig bluetooth off
chkconfig cups off
chkconfig firstboot off
chkconfig gpm off
chkconfig haldaemon off
chkconfig hidd off
chkconfig isdn off
chkconfig kudzu off
chkconfig lvm2-monitor off
chkconfig mcstrans off
chkconfig mdmonitor off
chkconfig messagebus off
chkconfig netfs off
chkconfig nfslock off
chkconfig pcscd off
chkconfig portmap off
chkconfig rawdevices off
chkconfig restorecond off
chkconfig rpcgssd off
chkconfig rpcidmapd off
chkconfig smartd off
chkconfig xfs off
chkconfig yum-updatesd off

必要なライブラリを取得

あとで入れてくださいと言われるであろうyumライブラリ。
最初に纏めて入れてしまいます。

# yumを最新にします。
yum update
# irbなどconsoleで作業するのに必要になります。
yum install readline-devel
# rubyやImageMagickなどのコンパイルに使用
yum install readline-devel gcc gcc-c++
# apache用ライブラリ
yum install httpd-devel
# Passengerに必要にライブラリ
yum install apr-devel curl-devel openssl-devel
# ImageMagickでpng画像の処理に必須なライブラリ
yum install libpng-devel zlib-devel
# ImageMagickに必要なライブラリを纏めていれるために、一旦yumで古いバージョンをインストール↓後にImageMagickを削除
yum install ImageMagick ImageMagick-devel
yum remove ImageMagick ImageMagick-devel

Rubyをインストール

mkdir ~/sources
cd ~/sources
wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p302.zip
unzip ruby-1.8.7-p302.zip
cd ruby-1.8.7-p302
./configure
make
make install

RubyGemsのインストール

cd ~/sources
wget http://rubyforge.org/frs/download.php/70697/rubygems-1.3.7.zip
unzip rubygems-1.3.7.zip
cd rubygems-1.3.7
ruby setup.rb

Railsのインストール

バージョンを指定してあげないRails3系が入ってしまいます。

gem install rails –version=2.3.8

Passengerのインストール&Apacheの設定

Passengerをインストールする前にRubyのOpenSSL用ライブラリをインストールします。

cd ~/sources/ruby-1.8.7-p302/ext/openssl/
ruby extconf.rb
make
make install

Passengerのインストールを開始します。

gem install passenger
# 下記コマンド入力後、Enterキーを何回か押していきます。
passenger-install-apache2-module
vim /etc/httpd/conf.d/passenger.conf

LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.2/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.2
PassengerRuby /usr/local/bin/ruby
# インスタンスの最大値。デフォルト20。メモリ512MBだと4~6程度で抑えないとサーバーが落ちる。
PassengerMaxPoolSize 4
# ユーザーの滞在時間に合わせて設定。デフォルト120。ユーザーの平均滞在時間が5分で600が推奨されている。
  PassengerPoolIdleTime 600

ApacheのServerNameの設定を行います。

vim /etc/httpd/conf/httpd.conf

– #ServerName www.example.com:80
+ ServerName www.yourDomainName.com:80

Apacheの自動起動をONに変更して、起動します。

chkconfig –level 3 httpd on
/etc/init.d/httpd start

ImageMagickのインストール

cd ~/sources
wget ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/ImageMagick-6.6.6-6.zip
unzip ImageMagick-6.6.6-6.zip
cd ImageMagick-6.6.6-6
./configure
make
make install
# ImageMagickを使用するためのRuby用ライブラリをインストールします。
gem install rmagick

ユーザーを作成してRailsアプリを設置しよう

# ユーザー「yourname」を作成。
useradd -m yourname
# ユーザー「yourname」のアクセス権限を変更
chmod 775 /home/yourname
# ユーザー「yourname」に切り替え。
su – yourname
# フォルダを作成
mkdir www
# フォルダへ移動
cd www
# Railsを作成
rails test
# rootに戻る
exit
# Apacheにtestアプリの設定を行う
vim /etc/httpd/conf.d/test.conf

NameVirtualHost *:80

ServerName www.yourDomainName.com # あなたのドメイン名を指定
DocumentRoot /home/yourname/www/test/public # アプリのpublicフォルダを指定

AllowOverride all
Options -MultiViews

# サーバーを再起動
/etc/init.d/httpd restart

http://yourDomainName.comがRailsの画面が表示されていれば成功です。