我正在使用本教程: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html
我在根目录中创建.ebextensions
目录,并将此django.config
文件放入其中:
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: mysite/wsgi.py
我还尝试设置mysite/mysite/wsgi.py
的路径,因为我在某个地方看到了这项工作,但这对我没有帮助。
我看到的每个地方都会显示一个不同的.config
文件,其中包含不同的安排,我不知道从哪里开始。如何在Elastic Beanstalk中正确设置WSGIPath?
答案 0 :(得分:8)
<强> [解决] 强>
1 eb config
2将WSGIPath从application.py更改为mysite / wsgi.py
就是这样
答案 1 :(得分:1)
我遇到了类似的问题,当我将.elasticbeanstalk放在与.ebextensions相同的目录中时,它似乎解决了,而不是让它成为子目录。然后我必须运行eb config
来修复它事实上正在拾取的wsgi文件,现在我有一个正在运行的应用程序。
答案 2 :(得分:1)
确保不忽略.ebextensions。 EB寻找.ignore文件(默认情况下.ebignore,如果.ebignore不存在,但.gitignore存在,它将使用它)并仅部署不被忽略的文件。我的local_settings也有类似的问题。
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-configuration.html#eb-cli3-ebignore
答案 3 :(得分:1)
如果看到以下错误:
ERROR: Your WSGIPath refers to a file that does not exist.
请注意以下几点:
有两种纠正方法。
选项1:使用特定于环境的配置设置
运行:$ eb config
找到以下配置文件“ .elasticbeanstalk / src-test.env.yml”。 该文件实际上在本地不存在; EB拉动了它,以便您可以对其进行编辑。 如果您将更改保存在此伪文件中,EB将在您的环境中更新相应的设置。
如果您在文件中搜索“ WSGI”一词,则应该找到类似于以下内容的配置部分:
aws:elasticbeanstalk:container:python:
NumProcesses: '1'
NumThreads: '15'
StaticFiles: /static/=static/
WSGIPath: application.py
更新WSGIPath:
aws:elasticbeanstalk:container:python:
NumProcesses: '1'
NumThreads: '15'
StaticFiles: /static/=static/
WSGIPath: src/src/wsgi.py #src/src is an example. Do not just c&p.
如果保存文件,EB将自动更新环境配置。
使用$ eb config
方法更改设置的优点是,您可以为每个环境指定不同的设置。
选项2:使用全局配置设置
要使用此选项,请创建一个名为/.ebextensions/02_python.config的新文件:
option_settings:
"aws:elasticbeanstalk:application:environment":
DJANGO_SETTINGS_MODULE: “src.settings" #src is an example.
"PYTHONPATH": "/opt/python/current/app/src:$PYTHONPATH" #src is an example.
"aws:elasticbeanstalk:container:python":
WSGIPath: src/src/wsgi.py #src is an example.
NumProcesses: 3
NumThreads: 20
"aws:elasticbeanstalk:container:python:staticfiles":
"/static/": "www/static/"
发生了什么事?
DJANGO_SETTINGS_MODULE:“ src.settings”-将路径添加到设置模块。
“ PYTHONPATH”:“ / opt / python / current / app / src:$ PYTHONPATH”-更新我们的PYTHONPATH,以便Python可以在我们的应用程序中找到模块。(请注意,必须使用完整路径)
WSGIPath:src / src / wsgi.py设置我们的WSGI路径。
NumProcesses:3和NumThreads:20-更新用于运行WSGI应用程序的进程和线程的数量。
“ / static /”:“ www / static /”设置我们的静态文件路径。
运行$ git commit
(如有必要)和$ eb deploy
以更新这些设置。
答案 4 :(得分:1)
我没有使用控制台,而是使用GUI。
ERROR: Your WSGIPath refers to a file that does not exist.
可能存在问题:创建.zip文件
全选:您项目的文件(不是项目文件夹)
注意:weworkout是我的django项目(由django-admin startproject创建) weworkout)
正确的方法:选择所有文件
错误的方式:选择项目文件夹
这也是您在上传之前对django项目所做的唯一更改
weworkout / .ebextensions / django.config文件包含
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: weworkout/wsgi.py
注意:.ebextensions与manage.py处于同一文件夹
答案 5 :(得分:0)
检查您的Django.config文件是否以正确的扩展名保存。我遇到了同样的问题,问题是该文件被另存为TXT文件而不是配置文件。