几天来,我一直在尝试在 Amazon Web Services 的 Elastic Beanstalk 下设置 Django。我认为我遇到的问题是这个:
ERROR - Your WSGIPath refers to a file that does not exist.
我按照这里的教程进行操作,直到第 6 步结束时一切顺利,但除了第 5 步 #2 中的通用 Elastic Beanstalk 页面外,我一生都无法显示任何内容。当我跑
./manage.py runserver
在我的本地机器上,一切正常,但我无法部署该页面。我首先尝试使用我自己编写的一个小型 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
从我的settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'mysite.db',
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
}
}
这是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>
我需要在其他地方定义我的 WSGIPath 吗?有没有办法通过 AWS 控制台做到这一点?我应该完全跳过EB并直接使用EC2吗?