EC2でRuby on Railsを動かす環境を構築する

OSイメージ作成

もうすでにEC2ではRailsを動かしたりしてるのですが、新たに環境を構築する必要があったのでついでにメモとして残しておきます。
EC2のインスタンス作成後、サーバーにログインします

OSイメージはAmazon Linuxを使うことを前提です(64bit版)

Basic 64-bit Amazon Linux AMI 2011.02.1 Beta

user作成とrootパスワード変更

最初はec2-userでしかログインできなくなってるので、他ユーザーでログインしたければ、ユーザー作成後、ec2-userホームの.sshディレクトリを対象ユーザーのホームディレクトリにコピーすると次回からログインが可能になります。
ついでにrootのパスワードも変更しておくと便利です。以下で変更

sudo passwd

以降はrootで作業します。

rubyのinstallの確認

ruby -v 
ruby 1.8.7 (2010-12-23 patchlevel 330) [x86_64-linux]

デフォルトで入ってます。すばらしいですね

Apacheのinstall

yum -y install httpd

RubyGemsのinstall

下記から最新版を取得します
http://rubygems.org/pages/download

wget http://production.cf.rubygems.org/rubygems/rubygems-1.7.2.tgz
tar xvzf rubygems-1.7.2
cd rubygems-1.7.2
ruby setup.rb

yumrubygemsをinstallしてもいいです

Railsのinstal

gem install rails

rdocのところでエラーが出たので、rdocもinstallしておきます。
あと、この後のpassengerのinstallでもruby.hがない、gccがない、makeがないとか怒られるので以下もinstallします

yum -y install ruby-devel
yum -y install gcc
yum -y install make
yum -y install rdoc

passengerのinstall

gem install passenger

Apacheのmoduleをinstallするのですが、以下を実行すると

passenger-install-apache2-module

なにやらたくさんinstallしろと言われます。なので足りないものを全部installします

yum -y install gcc-c++
yum -y install zlib-devel
yum -y install httpd-devel
yum -y install openssl-devel
yum -y install curl-devel

再度実行すると、コンパイルが実行されて完了となります(結構時間かかります)

Apache設定ファイルの追加

http.confを直接いじらず、conf.d/rails.confという名前のファイルを作成します(名前は何でもいい)
中身は以下(必要に応じて設定変更は必要)

LoadModule passenger_module /usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib64/ruby/gems/1.8/gems/passenger-3.0.7
PassengerRuby /usr/bin/ruby


	ServerName hoge.com # サーバー名
	DocumentRoot /home/www/xxx # document rootのディレクトリ指定
	RailsEnv development
	 # document root の詳細設定
		AllowOverride None
		Options FollowSymLinks
	

Subversionのinstall

とりあえずこれで完了ですが、自分はアプリのdeployにCapistranoを使いたかったので、subversionをinstall(sqliteも必要になるのでinstallする)
sqliteのinstall

wget http://www.sqlite.org/sqlite-amalgamation-3.6.13.tar.gz
解凍後
./configure
make
make install 

subversionのinstall

wget http://subversion.tigris.org/downloads/subversion-1.6.16.tar.gz
解凍後
./configure
make
make install

※gitでソース管理している人はsubversionではなくてgitをinstallすればいいと思います


以上で構築完了です。これはステージング環境用に作ったのですが、ec2でOSイメージをコピーすれば簡単に同じ環境のインスタンスが作成されるので本番環境も簡単に作れて便利です


参考URL
http://troi.kbc-ehime.ac.jp/kj/?p=893&page=2