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