シンのおもちゃ箱 - API研究所

APIやアプリケーションを使ってみて、その実装手順や所要時間、実装したうえでの感想などを書いてます。

rails3をherokuに公開

Heroku

Heroku概要

公式サイト

開発者用サイト

特徴

  • ruby on railsとgitを用いて「無料で」「簡単に」webサイトを公開できることで有名
  • 最近では、対応applicationも豊富で、RubyJava、Node.js、PythonClojure、Scalaなどに対応しているらしい
  • DatabaseはPostgreSQLを用いている
  • 無料で利用できるスペックが比較的大きいこちら

今回の目的

  • とにかく、最短で自由に編集できる公開ページを作成すること

現状

  • virtual boxというアプリケーションを用いて、仮想環境を構築済
  • virtial box 内にubuntu(Linux OS)がインストール済
  • ubuntu内に、ruby1.9.3とrails3.2がインストール済

作業 (3時間)

1. rvmを用いて、ruby2.0.0をインストールする(1.5時間)
2. herokuの初期設定を行う(0.5時間)
3. PortgreSQLをインストールする(0.5時間)
4. railsアプリを作成する(0.1時間)
5. 作成したrailsアプリを公開する(0.4時間)
1. rvmを用いて、ruby2.0.0をインストールする
参考url1: rvmのインストール方法
参考url2: さくらのVPS + Ubuntu + RVM + Ruby 2.0.0-p0 + Rails 3.2.12 + Apache2 + Passenger インストール

1. 参考url1のAnswerに従って、rvmの最新版をインストールする
2. rvmが.~/.rvm/bin/rvmにインストールされたので、.bashrcにalias rvm='~/.rvm/bin/rvm'を追記
3. 参考url2のrvmの設定の仕方に従って、rvmでruby-2.0.0をインストールし、デフォルトとして設定する
4. bashを再起動する

注意点1: sudo apt-get install ruby-rvmでrvmをinstallしたが、1.6.7という古いものがinstallされた。
注意点2: 仕方ないのでrvm get headをして、最新バージョンを手に入れたが、rvmが壊れてますというメッセージが流れ、参考url1を案内された
注意点3: ruby-2.0.0をデフォルトにしようとして rvm use 2.0としたが、既に無効なコマンドだったらしい。

2. herokuの初期設定を行う
参考url3: https://devcenter.heroku.com/articles/getting-started-with-rails3

  • 基本的に参考url3に従えばできる


1. https://id.heroku.com/signup/devcenterでアカウント作成
2. https://toolbelt.heroku.com/debianでHerokuで用いるコマンドをインストール
3. heroku loginを打つ

3. PortgreSQLをインストールする
参考url4: http://blog.scimpr.com/2012/09/01/ubuntu12-04%E3%81%A7postgresql%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/

1. 参考url4に従って、sudo apt-get install postgresqlを打つ
2. 続いて、sudo su postgres; createdb myapp_developmentを打ってデータベースを作成
3. そして、createuser -U postgres -P myappを打って、新しいmyappというロールを作成する

4. railsアプリを作成する
1. 参考url3に従って、適当な場所でrails new myapp --database=postgresqlを打つ
2. 続いて、cd myapp。その中にあるGemfileというファイル内のgem 'sqlite'gem 'pg'に変更し、gem 'rails_12factor', group: :productionを追記する
3. そして、bundle installを打つ
4. myapp/config/database.ymlを参考url3を参照して、変更する
5. myapp直下でrails serverとするとhttp://localhost:3000railsのイントロページが見えるようになる

5. 作成したrailsアプリを公開する
1. 参考url3に従い、作成したrailsアプリをgitの管理下に置くため、git init; git add . ; git commit -m "init";を打つ
2. heroku createを打つ(これで、gitのpush先などが設定される)
3. git push heroku masterを打つ
4. すると、最後のほうに "http://xxxxx.herokuapp.com deployed to Heroku"という表示があるので、コピーする
5. "http://xxxxx.herokuapp.com”にアクセスして、公開されていることを確認する

成果物

シンのおもちゃ箱

結果・感想

- rvmのインストールに苦労したが、合計3時間ほどで、railsアプリを公開することができた。(rvmやらなかったら、多分一時間くらいで終わってた。)
- urlも勝手に与えられるから、apacheの設定などが不要なのがありがたい
- また、git pushするだけでデプロイができるので、capistranoなどを整備しなくてよいのがありがたい。
- しかし、あくまでサンプル版ならよいが、規模が大きくなるときついんだろうなぁ。とすでに感じている。

追記@ 2013/11/28
config/environments/production.rbにおいて、

config.serve_static_assets = true
config.assets.compile = true

にしないと、js, cssが動かないらしい。