Развертывание нескольких проектов Django на apache с помощью windows

Я пытаюсь дать доменное имя и запустить несколько проектов django на моем apache, на данный момент мне удалось разместить одно приложение и запустить его на 127.0.0.1:8888 настройки выглядят так.

WSGIScriptAlias / C:/Users/ShabeerSheffa/workspace/ApacheDemo/ApacheDemo/wsgi.py
WSGIPythonPath C:/Users/ShabeerSheffa/workspace/ApacheDemo

<Directory C:/Users/ShabeerSheffa/workspace/ApacheDemo>
    <Files wsgi.py>
        Order deny,allow
        Allow from all
    </Files>
</Directory>

Я попытался изменить вышеуказанный код, чтобы выглядеть как код ниже, с доменным именем, чтобы я мог получить к нему доступ с помощью apachedemo.com но неудачно.

NameVirtualHost apachedemo.com   

<VirtualHost apachedemo.com>    
    ServerName apachedemo.com  
    ServerAlias www.apachedemo.com

    WSGIScriptAlias / C:/Users/ShabeerSheffa/workspace/ApacheDemo/ApacheDemo/wsgi.py
    WSGIPythonPath C:/Users/ShabeerSheffa/workspace/ApacheDemo

    DocumentRoot C:/Users/ShabeerSheffa/workspace/ApacheDemo

    <Directory C:/Users/ShabeerSheffa/workspace/ApacheDemo>
        <Files wsgi.py>
            Order deny,allow
            Allow from all
        </Files>
    </Directory>    

</VirtualHost> 

В настоящее время я использую порт 8888 для моего apache на машина windows 7, 127.0.0.1: 8888 работала для первой версии кода, но после редактирования кода apache выдает ошибку при перезапуске apache.

вот как выглядит мой хост-файл, я только добавил последнюю строку.(не совсем уверен, почему есть # во второй и третьей строке)

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost
    127.0.0.1:8888       apachedemo.com       www.apachedemo.com

Я пытаюсь найти ответы на два вопроса-

  1. как мне сделать apachedemo.com работа
  2. как добавить еще один проект на том же сервере, пример apachedemo2.com

EDIT: я разрабатываю свои проекты с помощью eclipse

Спасибо большое за помощь, ребята!--8-->

3 ответов


попробуйте следующую конфигурацию. Вы также можете найти это вопрос полезно и в моде WSGI docs есть раздел на virtualhosts это может помочь и вам.

WSGIPythonPath C:/Users/ShabeerSheffa/workspace/ApacheDemo

<VirtualHost apachedemo.com:8888>
    ServerName apachedemo.com
    WSGIScriptAlias / C:/Users/ShabeerSheffa/workspace/ApacheDemo/ApacheDemo/wsgi.py

    <Directory C:/Users/ShabeerSheffa/workspace/ApacheDemo>
        <Files wsgi.py>
            Order deny,allow
            Allow from all
        </Files>
    </Directory>
</VirtualHost>

<VirtualHost apachedemo2.com:8888>
    ServerName apachedemo2.com
    WSGIScriptAlias / C:/Users/ShabeerSheffa/workspace/ApacheDemo/apachedemo2/wsgi.py

    <Directory C:/Users/ShabeerSheffa/workspace/ApacheDemo>
        <Files wsgi.py>
            Order deny,allow
            Allow from all
        </Files>
    </Directory>
</VirtualHost>

обновление

один из комментариев ниже спросил, Может ли у вас быть другой WSGIPythonPath в каждом virtualhost. Глядя на настройки документы WSGIPythonPath может быть только в конфигурации сервера контекста, а не virtualhost. Вы можете однако добавьте в путь сами файлы wsgi как показано в этом ответе. Вы также можете попробовать посмотреть WSGIDaemonProcess с python-path, как показано в этот вопрос.


убедитесь, что Вы читаете:

автоматически сгенерированный wsgi.py файл в Django 1.4 делает вещи таким образом, что вы не можете разместить два экземпляра Django в одном процессе под разными интерпретаторами. Вам нужно будет изменить wsgi.py файл.

Это в дополнение к любым проблемам, которые могут возникнуть с конфигурацией Apache, если у вас все еще есть. Так хоть вы расплывчато о том, что именно ошибка, давая какие-либо сообщения об ошибках, трудно догадаться, какая проблема у вас есть.


лучшее решение-запустить каждый проект Django на своем собственном процессе WSGI в своем собственном экземпляре Django.

WSGIPythonPath /var/www/path/web:/var/www/path/api

WSGIDaemonProcess api_wsgi user=user group=group
WSGIScriptAlias /api /var/www/path/api/wsgi.py
<Location /api>
WSGIProcessGroup api_wsgi
</Location>

WSGIDaemonProcess web_wsgi user=user group=group
WSGIScriptAlias /web /var/www/path/web/wsgi.py
<Location /web>
#SetEnv DJANGO_SETTINGS_MODULE project.settigs
WSGIProcessGroup web_wsgi
</Location>

сообщение по теме: http://www.area0x33.com/blog/?p=155