如何配置 Apache2 以同时在多个域上托管 Django 和 PHP?

如何配置 Apache2 以同时在多个域上托管 Django 和 PHP?

我有一个 VPS(Ubuntu 10.04),它托管多个域,其中一个是 CodeIgniter (PHP) Web 应用程序。其他的只是静态网站,不需要花哨的后端语言。

好吧,我正在开始一个新项目,想使用 Django。我已经安装了 Django,在 Apache2 中启用了 mod_wsgi,但是当我在文档,它似乎覆盖了我现有的 Apache2 配置,并向我的所有域提供了 Django 欢迎页面。我的 httpd.conf 文件应该是什么样子,才能让它不覆盖我的所有域。

答案1

如果您不想将其安装在网站的根目录,那么您可以将其安装在子 URL 上。

WSGIScriptAlias /suburl /path/to/mysite.com/mysite/wsgi.py

或者,如果希望将其名义上安装在网站的根目录,但要让 PHP URL 优先,请使用配置中说明的 AddHandler/mod_rewrite 方法:

http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#The_Apache_Alias_Directive

或者按照其他答案中的建议使用不同的 VirtualHost 和 ServerName。

答案2

但当我迈出第一步时 文档,它似乎覆盖了我现有的 Apache2 配置并向我的所有域提供了 Django 欢迎页面。

将其添加到单独的虚拟主机,不要附加到主配置文件(httpd.conf):

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /path/to/mysite.com/mysite
    ServerName django.domain.com

    WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
    WSGIPythonPath /path/to/mysite.com

    <Directory /path/to/mysite.com/mysite>
        <Files wsgi.py>
            Order deny,allow
            Allow from all
        </Files>
    </Directory>
</VirtualHost>

相关内容