スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

AWS EC2 の Ubuntu に Ruby on Rails をインストール

【0】EC2 インスタンス作成

AWSで Ubuntu 12.04 EC2 インスタンスを生成。
すると、コマンドをタイプミスしたり、まだインストールしてないコマンドだったりで、コマンドが見つからないときに command-not-found has crhshed! とか言われて気持ち悪いので、やっぱり Ubuntu 11.10 でインスタンスを立ち上げることに。


【1】アップデート・SSH設定

とりあえず、rootパスワードの設定。そして、アップデート。

$ sudo su -
# passwd
$ sudo apt-get update
$ sudo apt-get dist-upgrade


クライアントから

$ scp -i xxx.pem id_rsa.pub ubuntu@serveraddress:~/.ssh

ここで、xxx.pemはインスタンス作成時に指定したファイルです。

サーバー側で

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

(">>"を">"とすると悲劇が起こるので注意!)

これでプライベートキーを持ったマシンからsshするだけでリモートログインできるようになります。
具体的にはこんな感じ。

$ ssh ubuntu@serveraddress



【2】関連パッケージのインストール

さて、Railsの導入ですが、その前に関連パッケージ等を入れます。

$ sudo apt-get install apache2 curl git libmysqlclient-dev mysql-server nodejs

MySQLがrootのパスワードを聞いてくるので、適当なものを入力してください。


【3】RVM及びRubyのインストール

次に、Rubyを入れます。
今回はRuby 1.9.2を入れますが、Ubuntu 11.10 のリポジトリには1.8.7しかないので、RVM(Ruby Version Manager)で入れます。
というわけで、RVMをインストール。環境によっては複数行で表示されるかもしれませんが、1行のコマンドです。

$ curl https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer | bash -s stable

いろいろと情報を見ていると、このRVMのインストール方法が結構コロコロ変わるらしく曲者なので、上記のコマンドで入らない場合はRVMの公式サイトに行ってインストール方法を調べてみてください。

RVMを入れたので、とりあえずRVMさんからのお手紙を読む。

$ rvm notes

すると、なにやらメッセージが。

* WARNING: You're using ~/.profile, make sure you load it,
add the following line to ~/.bash_profile if it exists
otherwise add it to ~/.bash_login:

source ~/.profile

言われるがままに ~/.bash_login に追記して、ターミナルを再起動。
しかし、WARNINGが消えない。気にせず先に進んでみる。

というわけで、Ruby1.9.2をインストール。

$ rvm install 1.9.2

途中、注意書き(?)みたいなのが書かれた画面が出てくるが、qで閉じる。

しばらくすると、エラー。

Error running 'make ', please read /home/ubuntu/.rvm/log/ruby-1.9.2-p320/make.log
There has been an error while running make. Halting the installation.

ログファイルを見ると、makeが入っていないとのこと。
試しに make -v してみると、本当に入っていない。
そんなことあるのかw

ともあれ、apt-get で make をインストールして make -v で入ったことを確認。それから、Rubyのインストールにリトライ。

$ sudo apt-get install make
$ rvm install 1.9.2

これでRubyのインストールが始まります。ただ、EC2 のインスタンスの種類にもよりますが、結構時間がかかります(Microだと30分とか)。

Rubyが無事に入ったかどうか確認。

$ ruby -v
ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-linux]



【4】Ruby on Rails のインストール

RVMが使用するデフォルトのRubyバージョンを指定。

$ rvm --default 1.9.2

指定したRuby1.9.2を使ってRails 3.1.0をインストール。

$ gem install rails --version 3.1.0

これも結構時間がかかります。お茶でも飲んで待ちましょう。

30分くらいして、ターミナルが我々の手に返ってきたら、ちゃんとインストールされたかどうか確認します。

$ rails -v
Rails 3.1.0

上記のようなバージョンが帰ってきたらOKです。


【5】rails new してみる。

Rails のインストールができたので、早速、rails new してみます。

$ rails new demo

すると、エラー。

An error occured while installing sqlite3 (1.3.6), and Bundler cannot continue.
Make sure that `gem install sqlite3 -v '1.3.6'` succeeds before bundling.

おとなしくメッセージにしたがってみたものの、症状が一向に改善されません。そこで、ググってみると、それっぽい情報がヒット。ありがたく利用させてもらいます。

$ sudo apt-get install sqlite3 libsqlite3-dev
$ gem install sqlite3

これで無事、rails new が通るようになりました。


【5】rails server してみる。

Rails が入り、rails new で新しいアプリケーションの作成もできたので、とりあえず、rails server して、サーバーが動くかどうか試してみます。

$ rails server

すると、またしてもエラー。

openssl が見つからない、みたいなエラーですが、openssl は入っています。どうやら openssl が RVM 上の Ruby から見えない模様。
ググるとまたしても偉大なる先人を発見。

まず、rvm で openssl を入れます(結構時間かかります)。

$ rvm pkg install openssl

次に、インストール済みの Ruby を一旦削除します。

$ rvm remove 1.9.2

最後に、オプション付きで Ruby をインストールし直します(例のごとく30分くらいかかります)。

$ rvm install 1.9.2 -C --with-openssl-dir=$HOME/.rvm/usr

これで、RVM 上の Ruby から openssl が見えるようになります。
ちなみに、RVM に別のバージョンのRubyをインストールするときは、また上記オプション付きのインストールを行う必要があります。

インストールが終わったら、RVM のデフォルトバージョンをセット。

$ rvm --default 1.9.2

これで、rails server が通るようになります。

$ rails server
=> Booting WEBrick
=> Rails 3.1.0 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-06-24 05:03:13] INFO WEBrick 1.3.1
[2012-06-24 05:03:13] INFO ruby 1.9.2 (2012-04-20) [x86_64-linux]
[2012-06-24 05:03:13] INFO WEBrick::HTTPServer#start: pid=17595 port=3000



【6】EC2 側のポート設定

通常なら、rails server した後にブラウザで localhost:3000 を叩けば Rails のデフォルトページが表示されるのですが、今回は EC2 上に Rails 環境を構築しているため、そうはいきません。

EC2 には EC2 のインスタンス管理画面から取得したドメイン名を用いてアクセスします。
Webrick が使用するポート番号は3000なので、作成した Rails アプリケーションのURLは以下のようになります。

http://ec2-123-456-789-000.compute-1.amazonaws.com:3000

ただし、EC2 のデフォルト設定では22番(SSH)と80番(HTTP)以外のポートは閉じられているため、このままだとリクエストが通りません。

まず、EC2 の管理画面で左側メニューの NETWORK & SECURITY から Security Groups を選択。
使用している EC2 インスタンスに適用しているセキュリティグループを選択し、Inbound タブをクリックしてポート設定を行います。

PortRange に3000を指定して、Add Rule をクリック。
その後、下にある Apply Rule Changes をクリック。

これでポート設定が反映され、上記URLによって EC2 上の Rails アプリケーションにアクセスできるようになります。


【7】まとめ

AWS EC2 と関係のない Ruby on Rails インストールの手順だけ書くと、

$ sudo apt-get update
$ sudo apt-get install make sqlite3 libsqlite3-dev apache2 curl git libmysqlclient-dev mysql-server nodejs
$ curl https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer | bash -s stable

RVM を有効にするため、ターミナルを再起動。

$ rvm pkg install openssl
$ rvm install 1.9.2 -C --with-openssl-dir=$HOME/.rvm/usr
$ rvm --default 1.9.2
$ gem install sqlite3
$ gem install rails --version 3.1.0

最短、これで入ります。

コメントの投稿

非公開コメント

カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
検索フォーム
カテゴリ
月別アーカイブ
最新記事
最新コメント
最新トラックバック
RSSリンクの表示
QRコード
QR
リンク
アクセス解析
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。