我一直在嘗試幾天,在Amazon Web Services的Elastic Beanstalk下設置Django。我覺得我打的問題是這樣的一個:在AWS上設置Django Elastic Beanstalk:找不到WSGIPath
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嗎?
此問題已經解決,詳細[這裏](https://forums.aws.amazon.com/thread.jspa?messageID=396656)。 我將所有的代碼存儲在一個目錄中,並且壓縮(並上傳)了整個目錄。我應該做的是將所有相關文件壓縮到該目錄中,而不是壓縮目錄本身,因此解壓縮時文件將全部位於該網站的根目錄中。希望這可以幫助其他人解決同樣的問題。我想我通過GUI和git遇到了同樣的問題。 – Xephryous
你不應該編輯問題,而是添加你自己的答案並接受它。 – bikeshedder
請注意,未提交的更改不會部署,因此您應該對「.ebextensions」文件夾進行所有更改,以便將其部署到EB CLI。 – nisevi