如何将Django放在网站的子目录中?

时间:2015-06-03 21:34:09

标签: django apache mod-wsgi wsgi

我想在mysite.com/运行WordPress,因为编辑销售副本等更容易。我想在mysite.com/members/

中运行我的Django网站

的httpd.conf:

<VirtualHost *:80>
ServerName mysite.com
ServerAlias www.mysite.com
DocumentRoot /var/www/mysite.com
WSGIDaemonProcess mysite python-path=/var/www/mysite.com/mysite:/var/www/mysite.com/
WSGIProcessGroup mysite
WSGIScriptAlias / /var/www/mysite.com/mysite/mysite/wsgi.py
</VirtualHost>

我需要做什么才能让Django在我的域/网站上的/members/目录中运行?

2 个答案:

答案 0 :(得分:2)

使用:

WSGIScriptAlias /members /var/www/mysite.com/mysite/mysite/wsgi.py

请注意,通过这样做,由于您错误地将DocumentRoot设置为源代码的父目录,人们将能够下载源代码,包括设置模块中的敏感信息。

因此,不要将DocumentRoot设置为您拥有的。让它引用整个服务器的默认htdocs目录的空目录。

答案 1 :(得分:0)

要跟进之前的回答和评论,这里有一个例子,说明如果我不得不这样做,我会这样做:

<VirtualHost *:80>
    # WordPress
    ServerName mysite.com
    ServerAlias www.mysite.com
    DocumentRoot /var/www/mysite.com

    # Django
    WSGIDaemonProcess mysite python-path=/var/django/django_project/virtualenv/django_project
    WSGIProcessGroup mysite
    WSGIScriptAlias /members /var/django/django_project/django_project/wsgi.py
    Alias /members/static/ /var/django/django_project/static/
</VirtualHost>

然而,绝对要理解评论中提出的安全问题。