Ваши директивы ServerName / ServerAlias неверны. Имя_сервера должно быть именем хоста. Вы, вероятно, должны просто удалить ServerAlias.
Затем просто выполните очевидные и повторяющиеся директивы VirtualHost / Listen, просто изменив номер порта и расположение скриптов в файловой системе.
Наконец, не устанавливайте DocumentRoot там, где находится ваш код Django, так как это упрощает случайное предоставление исходного кода для загрузки, если вы заполняете конфигурацию Apache. Поэтому просто удалите директиву DocumentRoot из VirtualHost для сайтов Django.
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 для разрешения доступа к статическим файлам. Однако вы должны пересмотреть пути.
Убедитесь, что вы прочитали:
http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango
http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#Hosting_Of_Static_Files
для получения дополнительной информации.
ОБНОВЛЕНИЕ 1
Кстати, поскольку вы используете PHP в одном и том же Apache, вам было бы гораздо лучше использовать режим демона mod_wsgi и выталкивать каждый экземпляр Django в отдельный процесс. Это позволяет этим процессам быть многопоточными, даже если основные процессы Apache вынуждены быть однопоточными из-за PHP. Конечным результатом будет гораздо меньше используемой памяти, чем при запуске нескольких экземпляров Django в каждом процессе во встроенном режиме с prefork MPM. Ваш код 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