Django 部署到 AWS EB 显示 500 内部服务器错误
Posted
技术标签:
【中文标题】Django 部署到 AWS EB 显示 500 内部服务器错误【英文标题】:Django Deploy to AWS EB Show 500 Internal Server Error 【发布时间】:2020-04-25 16:15:51 【问题描述】:我只是想将一个示例 Django 应用程序部署到 AWS EB。我对本教程执行完全相同的操作=>
Deploy Django on AWS
但结果不一样。我收到了这个错误消息,请问我该如何解决这个问题?
更新
登录 AWS EB
[Wed Jan 08 06:48:15.832250 2020] [:error] [pid 4442] [remote 172.31.] mod_wsgi (pid=4442): Target WSGI script '/opt/python/current/app/djangotest/djangotest/wsgi.py' cannot be loaded as Python module.
[Wed Jan 08 06:48:15.832304 2020] [:error] [pid 4442] [remote 172.31.] mod_wsgi (pid=4442): Exception occurred processing WSGI script '/opt/python/current/app/djangotest/djangotest/wsgi.py'.
[Wed Jan 08 06:48:15.832387 2020] [:error] [pid 4442] [remote 172.31.] Traceback (most recent call last):
[Wed Jan 08 06:48:15.832416 2020] [:error] [pid 4442] [remote 172.31.] File "/opt/python/current/app/djangotest/djangotest/wsgi.py", line 12, in <module>
[Wed Jan 08 06:48:15.832421 2020] [:error] [pid 4442] [remote 172.31.] from django.core.wsgi import get_wsgi_application
[Wed Jan 08 06:48:15.832437 2020] [:error] [pid 4442] [remote 172.31.] ModuleNotFoundError: No module named 'django'
【问题讨论】:
有记录吗? @lain Shelvington,在浏览器中,这只是错误,在 aws eb 日志中,有很多日志类型,例如 '/var/log/httpd/error_log' 、 '/opt/python/log /supervisord.log'等一个,哪个重要? @lain Shelvington,请检查更新。 你记得 pip freeze > requirements.txt 吗? django 在你的 requirements.txt 中吗? @OliverAdria,是的,最后我发现错误是因为 requirements.txt 文件名不正确。我忘了把s放在requirements.txt中,应该是requirements.txt。 【参考方案1】:您可以使用 CodeStar 在 AWS 上部署 Django 3.1.5+ 和 Python 3.8 应用程序。我写了一个教程here。
不需要代码或终端。
1 - 首先,转到您的 AWS 控制台,按 Option + S (Mac) 并输入 CodeStar
2 - 然后,按下创建项目按钮
3 - 选择你的选项,这些对我来说效果很好
4 - 选择(单击)显示的平台,然后按下一步
5 - 输入您的项目名称和 ID,然后选择您的仓库(我使用的是 Github - 顺便说一句,它支持持续部署)
6 - 如果您选择 Github,则必须输入这些详细信息。 AWS 会自动为您创建一个存储库。
7 - 快速配置您的 EC2 实例
8 - 查看您的项目信息并点击创建项目
此时,您将需要等待 3-4 分钟,让 AWS 为您完成一切。
当您在 Github 上将内容推送到您的仓库时,CodePipeline 将自动更新您的网站。
AWS 安装的默认 Django 版本是 3.1.5,但您可以根据需要将 common.txt 要求文件从 /requirements 修改为 3.1.7。
【讨论】:
以上是关于Django 部署到 AWS EB 显示 500 内部服务器错误的主要内容,如果未能解决你的问题,请参考以下文章
AWS EB Deploy 在部署后显示缺少 Dockerrun.aws.json
Laravel Passport:部署到 aws 后缺少密钥
带有 Django 的 AWS Beanstalk:eb create 抱怨未知配置设置“StaticFile”