1

Python Web サイトを heroku にデプロイしましたが、そのページにアクセスすると、一般的な heroku の「アプリケーション エラー」メッセージが表示されます。次に、ターミナルに移動してherokuログを確認すると、次のように表示されます。

2013-09-04T04:33:04.130527+00:00 heroku[web.1]: Starting process with command `python bin/app.py`
2013-09-04T04:33:06.871127+00:00 app[web.1]: http://0.0.0.0:8080/
2013-09-04T04:34:06.937646+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2013-09-04T04:34:06.937868+00:00 heroku[web.1]: Stopping process with SIGKILL
2013-09-04T04:34:08.199958+00:00 heroku[web.1]: State changed from starting to crashed
2013-09-04T04:34:08.158024+00:00 heroku[web.1]: Process exited with status 137
2013-09-04T04:34:09.013423+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=arcane-lake-2908.herokuapp.com fwd="71.20.1.73" dyno= connect= service= status=503 bytes=
2013-09-04T04:34:11.107423+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=arcane-lake-2908.herokuapp.com fwd="71.20.1.73" dyno= connect= service= status=503 bytes=
2013-09-04T04:35:54.768913+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=arcane-lake-2908.herokuapp.com fwd="71.20.1.73" dyno= connect= service= status=503 bytes=
2013-09-04T04:37:35.374279+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=arcane-lake-2908.herokuapp.com fwd="71.20.1.73" dyno= connect= service= status=503 bytes=

これが何を意味するのかわかりません。また、 foreman start を実行すると、次のメッセージが表示されますが、これが関連しているかどうかはわかりません。

21:43:00 web.1  | started with pid 1694
21:45:28 web.1  | 127.0.0.1:51458 - - [03/Sep/2013 21:45:28] "HTTP/1.1 GET /" - 404 Not Found

プロセスファイル:

web: python bin/app.py

app.py:

import web

urls = ( '/hello', 'Index' )

app = web.application(urls, globals())
render = web.template.render('templates/')

class Index(object):
 def GET(self):
     return render.hello_form()
 def POST(self):
     form = web.input(name="Nobody", greet="Hello")
     greeting = "%s, %s" % (form.greet, form.name)
     return render.index(greeting = greeting)

if __name__ == "__main__":
 app.run()
4

1 に答える 1

4

Web.py はポートを 8080 に割り当てますが、Heroku は別のポートを割り当てます。それがおそらく $PORT にバインドされていなかった理由です。Profile を次のように変更してみてください。

web: python bin/app.py ${PORT}

Heroku が PORT 値の入力を処理します。

于 2013-09-04T07:04:26.270 に答える