2013-11-25 109 views
0

我用Procfile與web: python manage.py runserver '0.0.0.0:$PORT'第一次成功啓動,但首先git push後,與此錯誤崩潰:Heroku的Django的web服務器失敗

OperationalError at/

could not connect to server: Connection refused 
    Is the server running on host "127.0.0.1" and accepting 
    TCP/IP connections on port 5432? 

重啓webrunner沒有幫助。有什麼訣竅? Heroku的日誌輸出:

2013-11-25T23:39:56.725138+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/psycopg2/__init__.py", line 164, in connect 
2013-11-25T23:39:56.725138+00:00 app[web.1]:  conn = _connect(dsn, connection_factory=connection_factory, async=async) 
2013-11-25T23:39:56.725138+00:00 app[web.1]: OperationalError: could not connect to server: Connection refused 
2013-11-25T23:39:56.725138+00:00 app[web.1]: Is the server running on host "127.0.0.1" and accepting 
2013-11-25T23:39:56.725138+00:00 app[web.1]: TCP/IP connections on port 5432? 
2013-11-25T23:39:56.725138+00:00 app[web.1]:  return Database.connect(**conn_params) 
2013-11-25T23:39:56.725138+00:00 app[web.1]: 
2013-11-25T23:39:56.872620+00:00 app[web.1]: [26/Nov/2013 00:39:56] "GET/HTTP/1.1" 500 118846 

使用gunicorn其表示,不能從Heroku的日誌中找到gunicorn應用和app[web.1]: bash: gunicorn: command not found and heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=shrouded-falls-4631.herokuapp.com fwd="188.163.187.182" dyno= connect= service= status=503 bytes=heroku ps顯示墜毀的應用[網絡]。第一次使用djangos的runserver至少已經開始。但之後也墜毀了。

+0

您是否運行過'heroku插件:添加heroku-postgresql:dev'? –

回答

0

我不知道確切的原因,但爲什麼你在heroku上運行django的runserver? Heroku使用gunicorn,它可以執行project_name/project_name文件夾中的.wsgi文件。

改爲在proc文件中使用:「web:gunicorn recipe.wsgi」,因此gunicorn爲您的django應用程序提供服務。只是我2美分。

此外,它似乎如果您使用0.0.0.0:5432或127.0.0.1:5432,它可能工作。

+0

使用gunicorn它說,找不到gunicorn應用程序和'app [web.1]:bash:gunicorn:command not found'和 'heroku [router]:at = error code = H10 desc =「應用程序崩潰」方法= GET路徑= /主機= shrouded-falls-4631.herokuapp.com fwd =「188.163.187.182」dyno =連接=服務=狀態= 503字節='從英雄日誌和英雄ps顯示崩潰的應用程序[網絡]。第一次使用djangos的runserver至少已經開始。但之後也墜毀了。 – boldnik

+1

如果您在heroku的網站上關注heroku教程上的django,您將看到您必須生成requirements.txt文件,並且需要使用gunicorn。例如,對於我的最後一項工作,requirements.txt具有以下要求:Django == 1.6 argparse == 1.2.1 boto == 2.16.0 django-ckeditor == 4.0.2 django-registration == 1.0 PIL == 1.1.7 枕頭== 2.2.1 南== 0.8.2 靜態== 0.4 DJ-數據庫URL == 0.2.2 DJ-靜態== 0.0.5 django-存儲區== 1.1.8 gunicorn == 18.0 psycopg2 == 2.5.1 wsgiref == 0.1.2 – user2707389

+0

我已經在覈心文件夾的'requirements.txt'中有'-r requirements/develop.txt'。我想它應該像本地機器那樣捕捉它。 – boldnik

0

您的數據庫未連接。確保你設置了正確的DATABASE_URL環境變量,並且你實際上有一個活動的postgres計劃。

+0

DATABASE_URL被設置,我不認爲這是原因,因爲它表示它失敗在啓動gunicorn。但謝謝你的回覆。 – boldnik

0

謝謝@ user2707389,它真的只適用於在requirements.txt中聲明的所有應用程序,但我不明白它爲什麼不與-r選項。無論如何,修復進一步Procfile和正確的wsgi.py使它活着。