我在文档中逐行执行了这些步骤,但我一直收到此错误:
Your WSGIPath refers to a file that does not exist.
这是我的'.config'文件:(除了appname和键)
container_commands:
01_syncdb:
command: "python manage.py syncdb --noinput"
leader_only: true
option_settings:
- namespace: aws:elasticbeanstalk:container:python
option_name: WSGIPath
value: [myapp]/wsgi.py
- option_name: DJANGO_SETTINGS_MODULE
value: [myapp].settings
- option_name: AWS_SECRET_KEY
value: XXXX
- option_name: AWS_ACCESS_KEY_ID
value: XXXX
我搜索了一下,发现其他人有类似的问题,他们通过编辑'optionsettings解决了这个问题。[myapp]',我不想删除我需要的东西,但这就是我所拥有的:
[aws:autoscaling:asg]
Custom Availability Zones=
MaxSize=1
MinSize=1
[aws:autoscaling:launchconfiguration]
EC2KeyName=
InstanceType=t1.micro
[aws:autoscaling:updatepolicy:rollingupdate]
RollingUpdateEnabled=false
[aws:ec2:vpc]
Subnets=
VPCId=
[aws:elasticbeanstalk:application]
Application Healthcheck URL=
[aws:elasticbeanstalk:application:environment]
DJANGO_SETTINGS_MODULE=
PARAM1=
PARAM2=
PARAM3=
PARAM4=
PARAM5=
[aws:elasticbeanstalk:container:python]
NumProcesses=1
NumThreads=15
StaticFiles=/static/=static/
WSGIPath=application.py
[aws:elasticbeanstalk:container:python:staticfiles]
/static/=static/
[aws:elasticbeanstalk:hostmanager]
LogPublicationControl=false
[aws:elasticbeanstalk:monitoring]
Automatically Terminate Unhealthy Instances=true
[aws:elasticbeanstalk:sns:topics]
Notification Endpoint=
Notification Protocol=email
[aws:rds:dbinstance]
DBDeletionPolicy=Snapshot
DBEngine=mysql
DBInstanceClass=db.t1.micro
DBSnapshotIdentifier=
DBUser=ebroot
解决该问题的用户删除了某些行,然后“eb start”。我删除了原始用户说他们删除的相同行,但是当我开始使用它时,我又遇到了同样的问题。
如果有人可以帮助我,那就太棒了!
答案 0 :(得分:1)
我昨天整天都遇到了这个问题,我正在使用ubuntu 13.10。
我也尝试删除.ebextensions下的选项文件无济于事。
我认为最终解决了这个问题
~/mysite/requirements.txt
在我完成所有设置并完成eb init
和eb start
之后,我仔细检查了这些值是什么,并注意到它们与本教程开头提到的http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Python_django.html不同。
当我在WSGIPath问题期间检查时,文件丢失了MySQL行,我只是添加了行:
MySQL-python==1.2.3
然后提交所有更改并且它有效。
如果这对您不起作用,则下面是.config文件设置和目录结构。
〜/ mysite / .ebextensions下的我的.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: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
- option_name: AWS_ACCESS_KEY_ID
value: AKIAIOSFODNN7EXAMPLE
我的要求.txt:
Django==1.4.1
MySQL-python==1.2.3
argparse==1.2.1
wsgiref==0.1.2
我的树形结构。这开始于~/
,所以如果我要做的话
cd ~/
tree -a mysite
你应该得到以下输出,包括.git下的一堆目录(我删除它们因为有很多):
mysite
├── .ebextensions
│ └── myapp.config
├── .elasticbeanstalk
│ ├── config
│ └── optionsettings.mysite-env
├── .git
├── .gitignore
├── manage.py
├── mysite
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── settings.py
│ ├── settings.pyc
│ ├── urls.py
│ ├── wsgi.py
│ └── wsgi.pyc
└── requirements.txt