【问题标题】:Django AWS Eslastic Beanktalk not deploying - Internal Server ErrorDjango AWS Eslastic Beanktalk 未部署 - 内部服务器错误
【发布时间】:2014-09-18 13:15:59
【问题描述】:

我正在学习本教程: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Python_django.html

我正在进行第 6 步。我已经创建了我的 AWS Elastic Beanstalk Python 应用程序,现在我想将它链接到我的 Django 应用程序。

这是我的目录:

~/Documents/myapp
myapp manage.py requirements.txt .ebextensions .elasticbeanstalk .git .gitignore

在我的 .ebextensions 中是 myapp.config:

container_commands:
    01_syncdb:    
        command: "django-admin.py syncdb --noinput"
        leader_only: true

option_settings:
    - namespace: aws:elasticbeanstalk:container:python
        option_name: WSGIPath
        value: myapp/wsgi.py
    - option_name: DJANGO_SETTINGS_MODULE
        value: myapp.settings
    - option_name: AWS_SECRET_KEY
        value: myUsersSecretKey
    - option_name: AWS_ACCESS_KEY_ID
        value: myUsersAcessKey

里面

~/Documents/myapp/myapp

是我的 settings.py、views.py 等。我在 settings.py 中将数据库设置为:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': os.environ['RDS_DB_NAME'],
        'USER': os.environ['RDS_USERNAME'],
        'PASSWORD': os.environ['RDS_PASSWORD'],
        'HOST': os.environ['RDS_HOSTNAME'],
        'PORT': os.environ['RDS_PORT'],
    }
}

正如教程中所说。然后我做了

git add .
git commit -m "eb configuration"
git aws.push

表示环境更新启动成功。等待状态就绪后,我转到 URL,它仍然是 AWS Elastic Beanstalk Python 成功页面,而不是我的 django 应用程序。知道为什么吗?

编辑:然后我尝试按照本教程进行操作: https://www.youtube.com/watch?v=YJoOnKiSYws(7:44暂停)

并将我的配置文件更改为:

container_commands:
    01_syncdb:    
        command: "django-admin.py syncdb --noinput"
        leader_only: true

option_settings:
    - namespace: aws:elasticbeanstalk:container:python
        option_name: WSGIPath
        value: myapp/wsgi.py
    - option_name: DJANGO_SETTINGS_MODULE
        value: myapp.settings
    - namespace: aws:autoscaling:launchconfiguration
        option_name: EC2KeyName
        value: myKeyPairName

现在当我在状态准备好后刷新页面时,它给出了一个内部服务器错误:

The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the sever administrator, root@localhost and inform them of the time and error occured, and anything you might have done that may have acused the error.
More information about this error may be available in the server error log.

编辑 2:

在处理 AWS 弹性 beantalk 时,我的 wsgi.py 文件是否应该以某种方式显示?我保留了 wsgi.py 文件最初创建时的样子,因为教程也是如此。这是我的 wsgi.py:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ayflare.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

【问题讨论】:

  • 你的意思是git push aws而不是git aws.push
  • @AndrewJohnson 嗯不,在教程中,它说“git aws.push”
  • 好的,看起来他们修改了 git 以添加该命令。只要它对你有用,那么它不是手头的问题。
  • @AndrewJohnson 我的 wsgi.py 文件应该看起来像某种方式吗?我保留了第一次创建文件时的正常状态,因为教程也是如此。
  • 我的第一个想法是您的本地文件没有与 AWS 同步。由于这是使用豆茎,我不确定它是如何工作的或如何检查它。它是 git 的专有扩展,我对 AWS 的那部分不熟悉。

标签: python django amazon-web-services amazon-ec2


【解决方案1】:

我认为这里有几件事,

  • 您可能想尝试在 配置而不是使用“django-admin.py”。我好像记得 在我切换到“python manage.py”之前遇到了一些问题。

  • 另一件可能值得做的事情是启用 DEBUG in 你的 django 设置文件,看看你是否能得到更详细的错误 关于该问题的消息。

  • 有时,如果你搞砸了部署是 EB,重新构建 一旦你在你的 代码/配置文件。您可以在 Elastic Beanstalk 页面中执行此操作 AWS 管理控制台。

  • 您的第一个 myapp.config 文件看起来正确。如果您关注亚马逊官方文档,您从 youtube 视频中获得的更新似乎不正确。

【讨论】:

    猜你喜欢
    • 2020-04-25
    • 2021-11-30
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 2020-02-20
    • 2015-11-23
    • 2019-01-02
    • 2023-03-25
    相关资源
    最近更新 更多