Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django AWS Eslastic Beanktalk未部署-内部服务器错误_Python_Django_Amazon Web Services_Amazon Ec2 - Fatal编程技术网

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

Python Django AWS Eslastic Beanktalk未部署-内部服务器错误,python,django,amazon-web-services,amazon-ec2,Python,Django,Amazon Web Services,Amazon Ec2,我将遵循本教程: 我在第六步。我已经创建了AWS Elastic Beanstalk Python应用程序,现在我想将其链接到Django应用程序 这是我的目录: ~/Documents/myapp myapp manage.py requirements.txt .ebextensions .elasticbeanstalk .git .gitignore 在my.ebextensions中是myapp.config: container_commands: 01_syncdb:

我将遵循本教程:

我在第六步。我已经创建了AWS Elastic Beanstalk Python应用程序,现在我想将其链接到Django应用程序

这是我的目录:

~/Documents/myapp
myapp manage.py requirements.txt .ebextensions .elasticbeanstalk .git .gitignore
在my.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
是my settings.py、views.py等。我在my 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应用程序。知道为什么吗

编辑:然后我尝试了以下教程: (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 elastic 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()

我想这里有几件事

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

  • 另一件值得做的事情是在中启用调试 查看django设置文件,查看是否可以获得更详细的错误 关于这个问题的信息

  • 有时,如果您将部署搞砸了,则需要重建 一旦您将问题分类,环境可以帮助您解决这些问题 代码/配置文件。您可以在中的Elastic Beanstalk页面中执行此操作 AWS管理控制台

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


而不是
git-aws.push
你的意思是
git-push-aws
?@AndrewJohnson-hm不,在教程中,它说“git-aws.push”好的,看起来他们修改git来添加该命令。只要它对您有效,就不是眼前的问题。@AndrewJohnson我的wsgi.py文件看起来应该是某种方式吗?我留下了第一次创建时的文件,因为教程也这样做了。我的第一个想法是你的本地文件没有与AWS同步。由于这是使用豆茎,我不知道如何工作或如何检查它。它是git的专有扩展,我不熟悉AWS的这一部分。