読者です 読者をやめる 読者になる 読者になる

プログラマでありたい

おっさんになっても、プログラマでありつづけたい

Amazon-LinuxにRVMを利用してApache+Passenger+Railsのインストール

 公式のAmazon-Linux AMIがこなれてきたので、サードパーティのCentOSではなくAmazon Linuxを使うことが増えてきました。便利なんですが、一点だけ注意点があります。Amazonのaws関係ツールがRuby 1.8系に依存している為、Railsアプリ等でRuby 1.9系を利用する場合工夫が必要だということです。
 対応策としては、2つあります。デフォルトのRubyをruby187等にリネームして、1.9系をメインで使う。そして、awsツールのソースのruby呼び出し部分を一括置換して、ruby187を呼び出すようにする。メリットとしては、 rubyのアプリを入れる時に特にrvmを意識しなくて良いのがGoodです。デメリットとしては、yum update等でawsツールがアップデートされる毎に、書き換えないといけないことです。
 もう一つの方法としては、まっすぐrvmを利用することです。メリットとしては、複数バージョンのrubyの管理が簡単なこと。デメリットとしては、アプリによってはrvmの設定を明示的に書いておかないと動かないこと。capistranoのように、rvm用のモジュールに分離しているケースがあります。
 今回は、rvmを利用するケースでの主なインストール手順を記載します。

タイムゾーンの変更

余りrvmもrailsも関係ないですが、解りづらいので最初に設定しておきましょう。

cp -i /usr/share/zoneinfo/Japan /etc/localtime 

開発キットのインストール

Developer ToolsとLibrariesはまとめて入れると楽です。本番機等で管理の手間を最小限にしたい場合は、個別に必要なモジュールだけいれると良いと思います。

yum install git
yum groupinstall "Development Tools"
yum groupinstall "Development Libraries"
yum install libxslt-devel
yum install sqlite-devel

apache関係のインストール

特に工夫する所は無いです。

yum install httpd
yum install mod_ssl
yum install httpd-devel
chkconfig httpd on

RVMのインストール

RVMのインストール方法は、割りとコロコロ変わるので公式サイトのクイックインストールを見るのが一番確実です。
ビルドに時間が割りと掛かります。

curl -L https://get.rvm.io | bash -s stable --ruby
curl -L https://get.rvm.io | bash -s stable --rails
curl -L https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler"

Passengerのインストール

gem install passenger --no-ri --no-rdoc
passenger-install-apache2-module

Passengerの設定は、インストール完了時に出てくる設定を
/etc/httpd/conf.d/passenger.confあたりに貼り付けるとよいです。


 後は必要に応じて、MySQLやSQLite等のDBクライアントを入れておくと良いと思います。個人的には、awsのツール群をさっさと1.9系に対応して頂きたいと思います。
Enjoy!