Django AWS Eslastic Beanktalk未部署 - 内部服务器错误

时间:2014-07-27 00:37:08

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

我正在关注本教程: 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弹性beanstalk时,我的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()

1 个答案:

答案 0 :(得分:0)

我认为这里有几件事,

  • 您可能想尝试使用" python manage.py syncdb --noinput"在 配置而不是使用" django-admin.py"。我似乎记得 遇到一些问题,直到我切换到" python manage.py"。

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

  • 有时,如果搞砸了部署是EB,重建 环境可以帮助您解决问题 代码/配置文件。您可以在Elastic Beanstalk页面中执行此操作 AWS管理控制台。

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