2012-11-28 11 views
7

Próbuję nadać nazwę domeny i uruchamiania wielu projektów django na moim apache na razie udało mi się zorganizować jeden wniosek i i uruchomić go na 127.0.0.1:8888 Ustawienia wyglądają tak:wdrażania wielu projektów Django na Apache przy użyciu okna

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> 

Próbowałem zmieniając powyższy kod wyglądać jak poniżej kod, z nazwą domeny, więc może do niego dostęp za pomocą apachedemo.com ale nie zdało egzaminu.

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> 

Obecnie używam portu 8888 dla mojego Apache w systemie Windows 7 maszyna, 127.0.0.1:8888 pracowały dla pierwszej wersji kodu, ale po edycji apache kod daje błąd przy ponownym uruchomieniu apache.

To jest jak mój plik hosta wygląda, dodałem tylko ostatni wiersz. (nie całkiem pewien, dlaczego jest tam # w drugim i trzecim wierszu)

# 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 

Próbuję znaleźć odpowiedzi dla dwóch questions-

  1. Jak zrobić apachedemo.com pracy
  2. Jak mogę dodać kolejny projekt na tym samym serwerze, przykład apachedemo2.com

EDIT: Zajmuję moje projekty przy użyciu Eclipse

dziękuję za pomoc chłopaki

Odpowiedz

4

Spróbuj poniższej konfiguracji out. Możesz także znaleźć ten question przydatny iw mod wsgi docs istnieje sekcja na virtualhosts, która może ci pomóc.

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> 

Aktualizacja

Jeden z komentarzy poniżej zadawanych można mieć inny WSGIPythonPath w każdym wirtualnego hosta. Patrząc na configuration docs WSGIPythonPath może być tylko w konfiguracji serwera kontekstowego, a nie virtualhost. Możesz jednak dodać do ścieżki w swoich plikach WSGS jako shown in this answer. Możesz również spróbować i spojrzeć na WSGIDaemonProcess z python-path, jak pokazano w this question.

+0

Ja mam przyjąć, aby zmienić ponieważ mój Apache korzystające z tego portu, to nadal nie działa: | , "Ups, Google Chrome nie może znaleźć apachedemo.com" – shabeer90

+0

tak, masz rację, należy zmienić na 8888. Nie wiem, dlaczego to nie działa. –

+0

mam kod do pracy :), po prostu chcę wiedzieć, czy mogę mieć dwa różne WSGIPythonPath, bo mam dwa projekty uruchomione .. – shabeer90

4

Upewnij się czytać:

auto generowane wsgi.py plik w Django 1.4 robi rzeczy w taki sposób, że nie może obsługiwać dwie instancje Django w samym procesie pod innym sub tłumacze. Będziesz musiał zmienić plik wsgi.py.

Jest to dodatek do problemów, które mogą wystąpić w konfiguracji Apache, jeśli jeszcze ją masz. Ponieważ jednak nie masz pewności, co to za błąd, przekazując komunikaty o błędach, trudno jest odgadnąć, jaki masz problem.

1

Najlepszym rozwiązaniem jest wykonanie każdego projektu Django na jego własnym procesie WSGI wewnątrz jego własnej instancji 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> 

post na ten temat: http://www.area0x33.com/blog/?p=155

Powiązane problemy