Railsをインストールしてherokuにdeploy
前回はlokkaをherokuにアップロードしてみたので、今回は自分でrailsのプロジェクトを作ってもう1つのherokuアプリとしてアップロードしてみます。
ちなみに私が試した環境はMac OS X Mountain Lionです。
私の場合、rubyとgemは入っているがrailsは入ってないので、まずはそこから入れます。
$ ruby -v ruby 1.9.3p374 (2013-01-15 revision 38858) [x86_64-darwin12.2.1] $ gem -v 1.8.23 $ gem install rails ... Installing ri documentation for rails-3.2.12... file 'lib' not found Installing RDoc documentation for rails-3.2.12... file 'lib' not found
…が、なんかドキュメントが一部インストールできていないっぽいです。
さくっとググったところ、解決策発見。rdocをインストールすれば良いようです。その後再びrailsインストールコマンドを叩く。
$ gem install rdoc $ gem install rails 1 gem installed Installing ri documentation for rails-3.2.12... Installing RDoc documentation for rails-3.2.12...
これで入ったか!よし、ではrailsアプリを作りましょう。ちなみにタワーディフェンスのミニゲームを作ろうとしているのでこんな名前にしてます。
$ rails new tower-defence Rails is not currently installed on this system. To get the latest version, simply type: $ sudo gem install rails You can then rerun your "rails" command.
ぐはっ、一体何が…。しかし確かにさっきのgem intall railsでrailsは入ったはず。一体どこを見ているのだろうか?
$ which ruby /usr/local/bin/ruby $ which gem /usr/local/bin/gem $ which rails /usr/bin/rails
ちなみにrubyやgemはhomebrewからインストールしたので/usr/local/binにあるわけですが、何故かrailsは/usr/binにある…。これは恐らく/usr/binに入ってるのはデフォルトのrailsで、さっきのgemでインストールした実行ファイルはどっかに迷子になったかな?というわけで力技でrailsの実行ファイルを探してみる。
$ cd / $ find . -type f -name 'rails' ./usr/bin/rails ./usr/local/Cellar/ruby/1.9.3-p374/bin/rails ./usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.12/bin/rails ./usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.12/guides/code/getting_started/script/rails ./usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.12/lib/rails/generators/rails/app/templates/script/rails
発見した。なるほどCellarの中には入ってたんですね。とりあえず無理やりシンボリックリンク貼ってみる。
$ ln -s /usr/local/Cellar/ruby/1.9.3-p327/bin/rails /usr/local/bin/rails $ source ~/.zshrc $ which rails /usr/local/bin/rails
OK。あ、ちなみにPATHは/usr/local/binの方が/usr/binより前に来るように設定しています。
これで再度railsアプリ作成してみる。
$ rails new tower-defence $ cd tower-defence
続いて、HerokuはPostgreSQLなので、Gemfileのsqlite3の記述を削除しないと動かないそうなのでコメントアウトします。
$ vi Gemfile - gem 'sqlite3' + group :production do + gem 'pg' + end + group :development, :test do + gem 'sqlite3' + end
次に、依存関係のあるgemライブラリを入れるbundleというコマンドを実行しておいた方が良いようなので、これまたgemインストールから始めます。
railsと同じく/usr/local/libにシンボリックリンクが来なかったので、自力で張ります。
$ gem install bundle $ bundle install $ ln -s /usr/local/Cellar/ruby/1.9.3-p374/bin/rails /usr/local/bin/rails
gemでインストールしたら必ずシンボリックリンク張らないといかんのか〜。面倒…
と、思ってググったらありました!brewbygemsを入れれば良いそうです!
あとでやっておこう…。
で、gitの初期化もそろそろしときましょう。
$ git init $ git add . $ git commit
これであとはherokuにdeployするのですが、その前にrailsがローカルで動くかテスト
$ rails s
localhost:3000にアクセスしてRailsのindexページが表示されることを確認!
ではherokuにデプロイしましょう!herokuへの登録は前回の記事で既にやってあるのでそこは省略。まずはログイン
$ heroku login
EmailとPasswordを求められるので入力。次にHeroku上に新しくアプリを作る。そしてremoteへpush
$ heroku create tower-defence $ git push heroku master
最後に開く。完了!!
$ heroku open