apache和mod_wsgi的多个django网站

我想举办它使用Debian的5同一服务器下的几个场所,说我有site1,site2site3,并承担我的IP是155.55.55.1:

site1: 155.55.55.1:80  , script at /opt/django/site1/

site2: 155.55.55.1:8080, script at /opt/django/site2/

site3: 155.55.55.1:8090, script at /opt/django/site3/

这是我的默认Apache:

<VirtualHost *:80>

ServerName /

ServerAlias */

DocumentRoot /opt/django/site1/

LogLevel warn

WSGIScriptAlias / /opt/django/site1/apache/django.wsgi

Alias /media /opt/django/site1/media/statics

Alias /admin_media /home/myuser/Django-1.1/django/contrib/admin/media

</VirtualHost>

<VirtualHost *:80>

DocumentRoot "/usr/share/phpmyadmin"

ServerName /phpmyadmin

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>

Options Indexes FollowSymLinks

AllowOverride None

Order Deny,Allow

Allow from all

</Directory>

</VirtualHost>

这是我的wsgi配置site1,位于/opt/django/site1/apache/django.wsgi:

import os, sys

import django.core.handlers.wsgi

sys.path.append('/opt/django')

sys.path.append('/opt/django/site1')

os.environ['DJANGO_SETTINGS_MODULE'] = 'site1.settings'

application = django.core.handlers.wsgi.WSGIHandler()

如何添加site2site3,它们是基于Django的网站,将像一样提供服务site1

回答:

你的ServerName / ServerAlias指令错误。ServerName应该是主机名。你可能应该删除ServerAlias。

然后只需执行明显且重复的VirtualHost / Listen指令,只需更改文件系统中脚本的端口号和位置即可。

最后,不要将DocumentRoot设置为你的Django代码所在的位置,因为如果你填充Apache配置,它很容易意外地暴露你的源代码以供下载。因此,只需从VirtualHost for Django网站删除DocumentRoot指令即可。

Listen 80

<VirtualHost *:80>

ServerName www.example.com

WSGIScriptAlias / /opt/django/site1/apache/django.wsgi

Alias /media /opt/django/site1/media/statics

Alias /admin_media /home/myuser/Django-1.1/django/contrib/admin/media

<Directory opt/django/site1/apache>

Order allow,deny

Allow from all

</Directory>

<Directory /home/myuser/Django-1.1/django/contrib/admin/media>

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

Listen 8080

<VirtualHost *:8080>

ServerName www.example.com

WSGIScriptAlias / /opt/django/site2/apache/django.wsgi

Alias /media /opt/django/site2/media/statics

Alias /admin_media /home/myuser/Django-1.1/django/contrib/admin/media

<Directory opt/django/site2/apache>

Order allow,deny

Allow from all

</Directory>

<Directory /home/myuser/Django-1.1/django/contrib/admin/media>

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

Listen 8090

<VirtualHost *:8090>

ServerName www.example.com

WSGIScriptAlias / /opt/django/site3/apache/django.wsgi

Alias /media /opt/django/site3/media/statics

Alias /admin_media /home/myuser/Django-1.1/django/contrib/admin/media

<Directory opt/django/site3/apache>

Order allow,deny

Allow from all

</Directory>

<Directory /home/myuser/Django-1.1/django/contrib/admin/media>

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

我还添加了缺少的Directory指令,以允许访问静态文件。但是,你应该查看路径。

以上是 apache和mod_wsgi的多个django网站 的全部内容, 来源链接: utcz.com/qa/401187.html

回到顶部