【发布时间】:2012-10-17 14:43:15
【问题描述】:
我几天来一直在尝试在 Amazon Web Services 的 Elastic Beanstalk 下设置 Django。我认为我遇到的问题是这个:
ERROR - Your WSGIPath refers to a file that does not exist.
我按照教程 here 进行操作,直到第 6 步结束前一切顺利,但除了第 5 步 #2 中的通用 Elastic Beanstalk 页面外,我这辈子都无法显示任何内容。当我跑步时
./manage.py runserver
在我的本地计算机上,一切正常,但我无法部署该页面。我首先尝试使用我自己编写的一个小型 Django 站点。它没有用,所以我删除了我所做的所有内容并再次尝试,但没有成功,所以我删除了所有内容并再次尝试安装新的 django。我试过很多次摆弄小东西,但我想我错过了一些重要的东西。
我添加了一个 python.config 文件,如this tutorial 中所述。
这是我的文件结构:
-.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 吗?
【问题讨论】:
-
这个问题已经解决,详细here。我将所有代码存储在一个目录中,然后压缩(并上传)了整个目录。我应该做的是压缩该目录中的所有相关文件而不是目录本身,因此解压缩时文件将全部位于站点的根目录中。希望这可以帮助其他有同样问题的人。我想我在通过 GUI 和 git 上传时遇到了同样的问题。
-
您不应编辑问题,而应添加自己的答案并接受。
-
请注意不会部署未提交的更改,因此您应该提交对“.ebextensions”文件夹的所有更改,以便使用 EB CLI 进行部署。
标签: django amazon-web-services wsgi amazon-elastic-beanstalk django-wsgi