【问题标题】:Configure Apache to override WSGI配置 Apache 以覆盖 WSGI
【发布时间】:2016-06-07 19:11:10
【问题描述】:

我有一个由 Apache2 提供的基于 Django 的站点。我的虚拟主机已配置,以便我的域(称为 example.com)为我的 wsgi 应用程序提供服务。

我还想使用 Apache 在 example.com/blog 上提供一个 Wordpress 网站。我将如何使用 Apache 在 /blog 上为 Wordpress 网站提供服务? 目前,我的请求被 Django 捕获,我得到一个 404,因为 /blog 不在我的 Django 网址中。

【问题讨论】:

    标签: django wordpress apache mod-wsgi


    【解决方案1】:

    在 Django 文档 (https://docs.djangoproject.com/en/1.9/howto/deployment/wsgi/modwsgi/) 中,他们给出了这个例子:

    Alias /media/ /path/to/mysite.com/media/
    Alias /static/ /path/to/mysite.com/static/
    
    <Directory /path/to/mysite.com/static>
    Require all granted
    </Directory>
    
    <Directory /path/to/mysite.com/media>
    Require all granted
    </Directory>
    
    WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
    
    <Directory /path/to/mysite.com/mysite>
    <Files wsgi.py>
    Require all granted
    </Files>
    </Directory>
    

    这适用于静态文件,但也适用于您的博客。

    【讨论】:

    • 这是正确答案。能否请您包含别名 /static 和 /media 的行,以便更清楚一点?
    【解决方案2】:

    您的问题是直到您在 Django URL 路由器中才能识别博客引用。尽管您可以执行 URL 规则 + 视图来进行重定向,但最简单的方法是创建一个新的子域,例如blog.mydomain.com,并配置 Apache 来处理附加站点。我对我所有的 Django 网站都这样做了,而且效果很好。

    【讨论】:

      【解决方案3】:

      在您的 Apache conf 中将这些行添加到您的 VirtualHost:

      Alias /blog /var/www/example.com/blog/
      <Directory /var/www/example.com/blog>
      Require all granted
      </Directory>
      

      【讨论】:

        猜你喜欢
        • 2013-02-12
        • 1970-01-01
        • 1970-01-01
        • 2011-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-24
        • 2017-09-08
        相关资源
        最近更新 更多