gemを使う
Rubyに働いてもらう
いよいよ、自分のアプリを公開する日がきました。
出来はともかく、便利に使うために作ったアプリですから、使ってみてナンボですね。
アプリを公開するにはwebサーバーが必要ですが、サーバーの勉強までするのはなかなか大変です。
ここではherokuという初心者にも比較的優しい、サーバーのことを知らなくても何とかなるサービス(お試し程度なら無料!)があるので、それを使いましょう。
ただし、heroku上ではRubyのバージョンがデフォルトで2.0.0です。自分でherokuをカスタムしない人はアプリがruby2.0.0で動くかどうか確認してください。
また、バージョン管理システムのgitを使う必要があります。gitのことがよくわからないという方は、こちらのページに最低限必要なことが書いてありますので、参考にしてください。
herokuへリリースする際の手順は以下のとおりです。
たくさんあるようですが、1~4は1度すれば必要ありません。5もPCの設定によっては必要ないこともあります。
ひとつずつ手順を確認していきましょう。
herokuのサイトにアクセスしてSign upしましょう。
アカウントを作るだけでは課金されたりしないので安心してください。
heroku toolbeltのサイトにアクセスして、自分のOSのheroku toolbeltをインストールしましょう。
heroku専用のコマンドを使用するので、必ずインストールしてください。
gitが初めての方も、こちらでgitがインストールされるので便利です。
herokuとのやり取りはsshで通信します。
これに必要な鍵(と呼ばれるファイル)を作成しましょう。
いくつかのやり取りが必要なので、それぞれ入力してください。
パスワード(passphrase)は入力しなくても次に進めますが、よりセキュアにするために設定することをオススメします。
$ ssh-keygen -f ~/鍵ファイルを置くPATH/鍵のファイル名
今作ったsshの公開鍵(拡張子が.pub)をherokuに登録します。
間違ってもここで秘密鍵(拡張子がない)をaddしないでください。
万が一間違ってaddしてしまった場合は、安全のためにssh鍵を作りなおしましょう。
$ heroku keys:add ~/鍵ファイルを置くPATH/鍵のファイル名.pub
herokuにloginするために、自分のPCへssh鍵のPATHを設定しておきます。
これをすると、login時にssh鍵の場所をいちいち書かずに済みます。
$ ssh-add ~/鍵ファイルを置くPATH/鍵のファイル名
このときの鍵ファイル名は秘密鍵のほうです。
もし、ssh-addでエラーになるときは、以下のコマンドでssh-agentというプロセスを起動してみてください。
$ eval `ssh-agent`
herokuにアクセスするために、ターミナルからloginしておきます。
いくつかの質問がありますが、emailとパスワードはherokuアカウントを作成したときのemailとパスワードです。
ssh keyは自分で作成したので”n”を入力してください。
$ heroku login
heroku上のDBは、postgresqlです。他のDBは使えなくはないのですが、いばらの道なのでやめておきましょう。
postgresqlを使用するための準備をします。gemが必要なのでGemfileを編集します。
まずは以下の3行を追加します。
Gemfile
group :production do
gem 'pg'
end
groupで後ろに:productionとありますが、これはアプリを起動するときのモードのことです。
railsはproduction(本番)モード、development(開発)モード、test(テスト)モードの3つの起動モードがあります。
heroku上にアプリを乗せると、自動的にproductionモードで起動されるので、そのときだけpostgresqlのgemを使うという意味です。
今、自分のPCで何気なくrails sとコマンドをたたいているときは、developmentモードで動いています。
このときはsqlite3を使用しているので、sqlite3のgemにも細工をしておきます。
すでにgem ‘sqlite3’という行があるはずですので、その前後を:developmentで囲みましょう。
Gemfile
group :development do
gem 'sqlite3'
end
heroku上ではGemfileではなく、Gemfile.lock(bundle installしたら自動で変更されるgem管理ファイル)の方が重要ですので、忘れずにbundle installしてコミットしておいてください。
$ bundle install
$ git add .
$ git commit -m "change and add gems for heroku."
アプリにアクセスするにはURLが必要ですが、無料では自分のドメインを使うことはできません。
heroku上でのプロジェクト名がURLの一部に使われます。
例えば、プロジェクト名が minamirb だとすると、URLは http://minamirb.herokuapp.comになります。
herokuサイトにログインしてプロジェクトを作る方法もありますが、ターミナルからherokuのプロジェクトを作った方があとがラクなので、
コマンドで作ってしまいましょう。
アプリのディレクトリにcdしてからコマンドを実行してください。
$ cd 自分のアプリのディレクトリ
$ heroku create プロジェクト名
もし、このプロジェクト名が他の人とかぶっていた場合はメッセージが帰ってくるのでご心配なく。
いよいよ、herokuへアプリを預けるときがきました。
ターミナルからgitでherokuへ渡します。
herokuへ渡す前に、アプリのコードがすべてcommitされているかどうか確認してください。
$ cd 自分のアプリのディレクトリ
$ git push heroku master
実行すると、問題なければターミナル上でherokuがgemのインストールをしたり、
アプリを公開する準備をしてるメッセージがずらーーーーっと流れてきます。
herokuへのpushができたら、実はもうアプリのURLは生きています。試しに自分のURLへアクセスしてみてください。
でも、何か変な画面が出てきますよね?
DBの準備がまだなんです。RailsはmigrateしないとアプリのDBは出来ません。
ということで、heroku上でmigrateしましょう。
$ heroku run rake db:migrate
これでどうでしょう?無事にherokuのURLからアプリが見られましたか?
エラー画面の見方
最初のうちは、エラー画面が出るとそれだけでびっくりして冷や汗ものだと思います。
でも、Railsのエラー画面は親切にいろんなことを教えてくれてるので、よくあるエラー画面の見方と、よくあるエラーをご紹介します。
よくありがちなエラー
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License
produced by Minami.rb