0

私のファイルはすべて GitHub で見つけることができます: https://github.com/Integralist/Passage (私が作業しているものを確認する必要がある場合に備えて)。

私は Heroku を初めて使用し、Sinatra アプリをアップロードするための指示に従ってみましたが、実行されず、アプリの URL にアクセスすると、一般的な「アプリケーション エラー」メッセージが表示されます。

私のセットアッププロセスは次のとおりです。

  • heroku login
  • heroku create --stack cedar

config.ruファイルを作成してコンテンツを追加...

require 'app'
run Sinatra::Application

Gemfile ファイル (ファイル拡張子なし) を作成し、コンテンツを追加します...

source 'http://rubygems.org'
gem 'sinatra', '1.3.2'
gem 'thin', '1.3.1'

ターミナル (私は Mac OS X を実行しています) を開き、次を実行bundle installします。この他の Gemfile には、次のコンテンツが含まれています...

GEM
  remote: http://rubygems.org/
  specs:
    daemons (1.1.8)
    eventmachine (0.12.10)
    rack (1.4.1)
    rack-protection (1.2.0)
      rack
    sinatra (1.3.2)
      rack (~> 1.3, >= 1.3.6)
      rack-protection (~> 1.2)
      tilt (~> 1.3, >= 1.3.3)
    thin (1.3.1)
      daemons (>= 1.0.9)
      eventmachine (>= 0.12.6)
      rack (>= 1.0.0)
    tilt (1.3.3)

PLATFORMS
  ruby

DEPENDENCIES
  sinatra (= 1.3.2)
  thin (= 1.3.1)

次に、Procfile(ファイル拡張子なし) を作成し、コンテンツを追加しますweb: bundle exec ruby app.rb -p $PORT(app.rb は明らかにメイン アプリケーション ファイルの名前です)。

次に、Git を使用してファイルを関連する Heroku リポジトリにステージング/コミット/プッシュします。

しかし、私が実行すると、heroku ps私は得る...

=== web: `bundle exec ruby app.rb -p`
web.1: crashed for 1m

そして、私が走るheroku logsと...

2012-06-09T18:35:41+00:00 heroku[slugc]: Slug compilation started
2012-06-09T18:36:37+00:00 heroku[api]: Add LANG, PATH, RACK_ENV, GEM_PATH config by email@domain.com
2012-06-09T18:36:37+00:00 heroku[api]: Release v2 created by email@domain.com
2012-06-09T18:36:38+00:00 heroku[api]: Release v3 created by email@domain.com
2012-06-09T18:36:38+00:00 heroku[api]: Deploy e26921b by email@domain.com
2012-06-09T18:36:38+00:00 heroku[web.1]: State changed from created to starting
2012-06-09T18:36:38+00:00 heroku[slugc]: Slug compilation finished
2012-06-09T18:36:40+00:00 heroku[web.1]: Starting process with command `bundle exec ruby app.rb -p`
2012-06-09T18:36:41+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.2/lib/sinatra/main.rb:15:in `<class:Application>': missing argument: -p (OptionParser::MissingArgument)
2012-06-09T18:36:41+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.2/lib/sinatra/main.rb:4:in `<module:Sinatra>'
2012-06-09T18:36:41+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.2/lib/sinatra/main.rb:3:in `<top (required)>'
2012-06-09T18:36:41+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.2/lib/sinatra.rb:5:in `require'
2012-06-09T18:36:41+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.2/lib/sinatra.rb:5:in `<top (required)>'
2012-06-09T18:36:41+00:00 app[web.1]:   from app.rb:12:in `require'
2012-06-09T18:36:41+00:00 app[web.1]:   from app.rb:12:in `<main>'
2012-06-09T18:36:42+00:00 heroku[web.1]: Process exited with status 1
2012-06-09T18:36:42+00:00 heroku[web.1]: State changed from starting to crashed
2012-06-09T18:36:42+00:00 heroku[web.1]: State changed from crashed to created
2012-06-09T18:36:42+00:00 heroku[web.1]: State changed from created to starting
2012-06-09T18:36:44+00:00 heroku[web.1]: Starting process with command `bundle exec ruby app.rb -p`
2012-06-09T18:36:45+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.2/lib/sinatra/main.rb:15:in `<class:Application>': missing argument: -p (OptionParser::MissingArgument)
2012-06-09T18:36:45+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.2/lib/sinatra/main.rb:4:in `<module:Sinatra>'
2012-06-09T18:36:45+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.2/lib/sinatra/main.rb:3:in `<top (required)>'
2012-06-09T18:36:45+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.2/lib/sinatra.rb:5:in `require'
2012-06-09T18:36:45+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.2/lib/sinatra.rb:5:in `<top (required)>'
2012-06-09T18:36:45+00:00 app[web.1]:   from app.rb:12:in `require'
2012-06-09T18:36:45+00:00 app[web.1]:   from app.rb:12:in `<main>'
2012-06-09T18:36:47+00:00 heroku[web.1]: Process exited with status 1
2012-06-09T18:36:47+00:00 heroku[web.1]: State changed from starting to crashed
2012-06-09T18:42:09+00:00 heroku[router]: Error H10 (App crashed) -> GET furious-wind-9309.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=
2012-06-09T18:42:09+00:00 heroku[router]: Error H10 (App crashed) -> GET furious-wind-9309.herokuapp.com/favicon.ico dyno= queue= wait= service= status=503 bytes=
2012-06-09T18:42:38+00:00 heroku[router]: Error H10 (App crashed) -> GET furious-wind-9309.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=
2012-06-09T18:42:39+00:00 heroku[router]: Error H10 (App crashed) -> GET furious-wind-9309.herokuapp.com/favicon.ico dyno= queue= wait= service= status=503 bytes=

誰かが問題が何であるか、どのように修正できるかを説明できますか.

ありがとう。

4

1 に答える 1

1
/app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.2/lib/sinatra/main.rb:15:in `<class:Application>': missing argument: -p (OptionParser::MissingArgument)

これは、スタック トレースで表示されるエラーです。実行中の場合、 にはbundle exec ruby app.rb -p引数がありません-pbundle exec ruby app.rb -p 3000(ポート3000で実行するには)のようなものが必要です。グローバル変数 $PORT が定義されていないのではないでしょうか?

編集

Procfile でherokuのドキュメントを作成しますが

You can reference other environment variables populated by Heroku, most usefully the $PORT variable, in the command.

raise $PORT.inspecta を実行してから、heroku にプッシュしてみてください。クラッシュしますが、うまくいけば、何をしようとしているのかをよりよく理解できます。

于 2012-06-09T20:38:55.023 に答える