在AWS Elastic Beanstalk上设置Django:找不到WSGIPath

Xep*_*ous 26 django wsgi amazon-web-services django-wsgi amazon-elastic-beanstalk

我已经尝试了好几天在Amazon Web Services的Elastic Beanstalk下设置Django.我认为我遇到的问题是这个问题:

ERROR - Your WSGIPath refers to a file that does not exist.
Run Code Online (Sandbox Code Playgroud)

我按照这里的教程进行一直顺利,直到第6步结束,但是除了第5步#2的通用Elastic Beanstalk页面之外,我不能为我的生活展示任何东西.我跑的时候

./manage.py runserver
Run Code Online (Sandbox Code Playgroud)

在我的本地计算机上,一切正常,但我无法部署该页面.我首先尝试使用自己编写的小型Django网站.它没有用,所以我删除了我所做的一切并再次尝试,但是没有用,所以我删除了所有这些并再次尝试使用新的django安装.我尝试了很多次摆弄小东西,但我想我错过了一些重要的东西.

我添加了一个python.config文件,如本教程中所述.

这是我的文件结构:

-.git/
-.mysite/
    -myapp/
        -__init__.py
        -models.py
        -tests.py
        -views.py
    -mysite/
        -__init__.py
        -settings.py
        -urls.py
        -wsgi.py
    -.ebextensions/
        -python.config
    -manage.py
    -mysite.db
    -requirements.txt
Run Code Online (Sandbox Code Playgroud)

来自我的settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'mysite.db',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
    }
}
Run Code Online (Sandbox Code Playgroud)

这是python.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: mysite/wsgi.py
    - option_name: DJANGO_SETTINGS_MODULE
      value: mysite.settings
    - option_name: AWS_SECRET_KEY
      value: <This is my secret key>
    - option_name: AWS_ACCESS_KEY_ID
      value: <This is my access key>
Run Code Online (Sandbox Code Playgroud)

我还需要另一个地方来定义我的WSGIPath吗?有没有办法通过AWS控制台执行此操作?我应该完全跳过EB并直接使用EC2吗?

tut*_*uju 14

来自https://forums.aws.amazon.com/thread.jspa?messageID=396656൰

".ebextensions"目录必须位于应用程序的根级目录中,但是从日志输出中,该目录位于"mysite/.ebextensions"目录中.因此,例如,在运行"git aws.push"后,在文档中跟随django教程后,您的根目录将如下所示:

.
??? .ebextensions
?   ??? python.config
??? .elasticbeanstalk
?   ??? config
??? .git
??? .gitignore
??? manage.py
??? mysite
?   ??? __init__.py
?   ??? settings.py
?   ??? urls.py
?   ??? wsgi.py
??? requirements.txt
Run Code Online (Sandbox Code Playgroud)

而不是这个:

.
??? mysite
    ??? .ebextensions
    ??? .elasticbeanstalk
    ??? .git
    ??? .gitignore
    ??? manage.py
    ??? mysite
    ??? requirements.txt
Run Code Online (Sandbox Code Playgroud)

  • 就是那个!我实际上在评论中回答了我自己的问题[这里](http://stackoverflow.com/questions/13102076/setting-up-django-on-aws-elastic-beanstalk-wsgipath-not-found/17711770?iemail=1&noredirect = 1#comment17943273_13102076).我想我当时没有足够的SO声誉来回复.无论如何,这个问题已经解决了. (2认同)

Ros*_*one 8

.elasticbeanstalk/optionsettings.your-app-name在应用程序的根目录中查找.搜索WSGIPath并确保它是您想要的路径.看起来它默认为application.py.