试图在Heroku上部署我的django应用程序,我遵循了官方指南,并设法使示例"hellodjano.app"正常工作。
现在下一步是部署我自己的项目,但这样做会在Heroku上显示以下错误:
日志文件:
2016-01-11T06:25:15.235676+00:00 app[web.1]: Performing system checks...
2016-01-11T06:25:15.235697+00:00 app[web.1]: 2016-01-11T06:25:15.235697+00:00 app[web.1]:
2016-01-11T06:25:15.244321+00:00 app[web.1]: System check identified no issues (0 silenced).
2016-01-11T06:25:15.276207+00:00 app[web.1]: January 11, 2016 - 06:25:15
2016-01-11T06:25:15.276211+00:00 app[web.1]: Django version 1.8, using settings 'bittania.settings'
2016-01-11T06:25:15.276212+00:00 app[web.1]: Starting development server at http://127.0.0.1:8000/
2016-01-11T06:25:15.276213+00:00 app[web.1]: Quit the server with CONTROL-C.
2016-01-11T06:25:42.412857+00:00 heroku[router]: at=error code=H20 desc="App boot timeout" method=GET path="/" host=shjdhjsd.herokuapp.com request_id=781298dc-bc3d-4ad8-8da8-1a49ffb7d983 fwd="**MYIPADDRESS**" dyno= connect= service= status=503 bytes=
2016-01-11T06:26:12.694810+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2016-01-11T06:26:12.694810+00:00 heroku[web.1]: Stopping process with SIGKILL
2016-01-11T06:26:13.522957+00:00 heroku[web.1]: State changed from starting to crashed
2016-01-11T06:26:13.509271+00:00 heroku[web.1]: Process exited with status 137
我已经设置了一个Procfile、gitignore和wsgi.py
我做错了什么?
编辑
将Procfile更改为"`web:gunicorn sitename.wsgi--日志文件--。是的,这适用于一个新的应用程序,它向我显示Django欢迎屏幕__>pure-depths-4933.herokuapp.com。然而,对于我的旧项目,这样做会给我带来与以前相同的错误。
在这些关于如何部署到Heroku的非常好的说明中,没有任何地方表示要将runserver放入Procfile中。你需要一个合适的服务器(如gunicorn)。
您可以安装Heroku CLI。它包含一个名为"heroku local"的工具,这是一个与基于Procfile的应用程序交互的cli,就像heroku dyno启动你的应用程序一样。
从应用程序文件夹中,您应该始终尝试使用在本地运行应用程序
heroku本地
该工具将读取您的Procfile,并尝试执行每个进程(实际上是文件中的一行),并使用您在.env文件中设置的值设置环境变量。您可以启用调试或详细日志记录。您甚至可以通过以下命令获取heroku应用程序的所有环境变量:
heroku配置--appmysuperdjango>>.env.heroku
你可以复制粘贴任何你需要的.env.
以下是Django的提示:
DEBUG=bool("True"==os.environment.get('DEBUG',False))
此行将搜索环境变量"DEBUG"。如果它不存在,如果默认为False,但如果它是"True",Django应用程序将在调试打开的情况下以开发模式启动。因此,如果您在.env文件中设置"debug=True"并使用"heroku-local"命令启动应用程序,它将以开发模式开始。
希望这能帮助任何从谷歌来到这里的人。
https://devcenter.heroku.com/articles/heroku-cli
https://devcenter.heroku.com/articles/config-vars
https://devcenter.heroku.com/articles/heroku-local