Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何从Amazon Elastic Beanstalk中删除一些Apache设置?_Django_Apache_Amazon Web Services_Amazon Elastic Beanstalk - Fatal编程技术网

Django 如何从Amazon Elastic Beanstalk中删除一些Apache设置?

Django 如何从Amazon Elastic Beanstalk中删除一些Apache设置?,django,apache,amazon-web-services,amazon-elastic-beanstalk,Django,Apache,Amazon Web Services,Amazon Elastic Beanstalk,我对弹性豆茎有一个奇怪的问题。我将Django项目部署到自动缩放EC2实例 在.ebextensions目录中,我有一个python.config文件,末尾有以下几行: option_settings: "aws:elasticbeanstalk:application:environment": DJANGO_SETTINGS_MODULE: "myapp.settings_eb_staging" "PYTHONPATH": "/opt/python/current/app

我对弹性豆茎有一个奇怪的问题。我将Django项目部署到自动缩放EC2实例

.ebextensions
目录中,我有一个
python.config
文件,末尾有以下几行:

option_settings:
  "aws:elasticbeanstalk:application:environment":
    DJANGO_SETTINGS_MODULE: "myapp.settings_eb_staging"
    "PYTHONPATH": "/opt/python/current/app/django-myapp:$PYTHONPATH"
  "aws:elasticbeanstalk:container:python":
    WSGIPath: myapp/wsgi.py
    NumProcesses: 3
    NumThreads: 20
  "aws:elasticbeanstalk:container:python:staticfiles":
    "/static/": "myapp/static/"
    "/favicon.ico": "myapp/static/site/img/favicon.ico"
当我用

$ eb deploy
部署过程创建了这个Apache配置,可以在
/etc/httpd/conf.d/wsgi.conf
上找到:

Alias /favicon.ico /opt/python/current/app/myapp/static/site/img/favicon.ico
<Directory /opt/python/current/app/myapp/static/site/img/favicon.ico>
Order allow,deny
Allow from all
</Directory>
Alias/favicon.ico/opt/python/current/app/myapp/static/site/img/favicon.ico
命令允许,拒绝
通融
这显然是错误的,因为favicon.ico是一个文件,而不是一个目录

因此,我尝试从
python.config
文件中删除最后一行:

“/favicon.ico”:“myapp/static/site/img/favicon.ico”

然后重新部署项目

问题是Apache指令停留在那里。我还试图手动删除该指令,但在下一次部署之后,它再次出现。我甚至尝试重建环境,但它仍然创建了错误的Apache配置指令


我怎样才能摆脱它呢?

事实证明,
wsgi.conf
配置文件可以在
.ebextensions/python.config
文件中被覆盖。这就是我所做的:

  • 通过
    eb SSH
    将SSH连接到EC2实例,并使用
    cat/etc/httpd/conf.d/wsgi.conf
    获取
    wsgi.conf
    的内容

  • 创建一个文件
    .ebextensions/wsgi.conf
    ,并将上一步的内容复制到那里。删除关于静态目录和favicon的Apache指令

  • 修改
    .ebextensions/python.config
    并添加一个命令,将
    wsgi.conf
    复制到
    /tmp/
    目录(可能在部署过程中使用):

  • 提交到git并使用
    eb deploy
    部署

  • 另外,为了从静态目录中显示favicon,我必须在
    base.html
    模板中添加其完整路径:

    <link rel="shortcut icon" href="{{ STATIC_URL }}site/img/favicon.ico" />
    

    事实证明,
    wsgi.conf
    配置文件可以在
    .ebextensions/python.config
    文件中被覆盖。这就是我所做的:

  • 通过
    eb SSH
    将SSH连接到EC2实例,并使用
    cat/etc/httpd/conf.d/wsgi.conf
    获取
    wsgi.conf
    的内容

  • 创建一个文件
    .ebextensions/wsgi.conf
    ,并将上一步的内容复制到那里。删除关于静态目录和favicon的Apache指令

  • 修改
    .ebextensions/python.config
    并添加一个命令,将
    wsgi.conf
    复制到
    /tmp/
    目录(可能在部署过程中使用):

  • 提交到git并使用
    eb deploy
    部署

  • 另外,为了从静态目录中显示favicon,我必须在
    base.html
    模板中添加其完整路径:

    <link rel="shortcut icon" href="{{ STATIC_URL }}site/img/favicon.ico" />
    

    您只需将自己的wsgi.conf(httpd conf)复制到父目录,这样您的文件将被使用,而不是默认文件

    container_commands:
      03_wsgireplace:
        command: 'cp . ebextensions/wsgi.conf ../wsgi.conf'
    

    您只需将自己的wsgi.conf(httpd conf)复制到父目录,这样就可以使用您的文件而不是默认文件

    container_commands:
      03_wsgireplace:
        command: 'cp . ebextensions/wsgi.conf ../wsgi.conf'