您的ServerName/ServerAlias指令错误.服务器名应为主机名.您可能只需要删除ServerAlias即可.
然后只需执行明显且重复的VirtualHost/Listen指令,只需更改文件系统中脚本的端口号和位置.
最后,不要将DocumentRoot设置为Django代码所在的位置,因为这样在填充Apache配置时更容易意外地公开源代码以供下载.所以,只需从Django站点的VirtualHost中删除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>
我还添加了允许访问静电文件的缺失目录指令.但是,您应该判断路径.
确保阅读:
http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango个
http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#Hosting_Of_Static_Files
了解更多信息.
更新1
顺便说一句,因为您在同一个Apache中使用PHP,所以最好使用mod_wsgi守护程序模式,并将每个Django实例推出到自己的单独进程中.这使得这些进程可以是多线程的,即使主要的Apache进程因为PHP而被迫是单线程的.最终的结果是,与使用prefork MPM在嵌入式模式下在每个进程中运行多个Django实例相比,使用的内存要少得多.Django代码只需要是线程安全的.除了上述配置之外,还需要将WSGIDaemonProcess/WSGIProcessGroup添加到每个Django VirtualHost,其中每个VirtualHost的守护进程组的名称不同.
<VirtualHost *:80>
WSGIDaemonProcess site1 display-name=%{GROUP}
WSGIProcessGroup site1
... existing stuff
</VirtualHost>
<VirtualHost *:8080>
WSGIDaemonProcess site2 display-name=%{GROUP}
WSGIProcessGroup site2
... existing stuff
</VirtualHost>
<VirtualHost *:8090>
WSGIDaemonProcess site3 display-name=%{GROUP}
WSGIProcessGroup site3
... existing stuff
</VirtualHost>
这还允许您更轻松地重新启动每个Django实例,而无需重新启动整个Apache.阅读:
http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide#Delegation_To_Daemon_Process个
http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode