2013-01-05 22 views
5

mi strappano i capelli cercando di capire perché i miei due progetti di django non vengono serviti separatamente ... sembra che i file statici a cui si accede prima diventino i file statici defacto per entrambi i progetti, oppure qualcosa con effetto similemod_wsgi e più progetti

Sto tentando di servire due progetti (che sono in realtà versioni diverse dello stesso progetto originale - con database diversi e posizioni fisiche diverse), tramite due nomi di dominio diversi dallo stesso indirizzo IP. Inizialmente ho provato virtualhosts su più indirizzi IP (differenziati per porta), ma non ci sono riuscito. Sfortunatamente, ho esattamente lo stesso problema usando virtualhosts con nomi di dominio diversi.

La sezione virtualhost del http.conf Apache è così così:

WSGIApplicationGroup %{GLOBAL} 

Listen 80 
NameVirtualHost *:80 

<VirtualHost *:80> 
ServerAdmin [email protected] 
ServerName www.toastprojects.tk 
WSGIScriptAlias/"C:/Python27/sites/Adaptwater/adaptwater/wsgi.py" 
Alias /static/ "C:/Python27/sites/Adaptwater/static/" 
</VirtualHost> 

<Directory "C:/Python27/sites/Adaptwater/static/"> 
Order deny,allow 
Allow from all 
</Directory> 

<Directory "C:/Python27/sites/Adaptwater/adaptwater/"> 
<Files wsgi.py> 
Order deny,allow 
Allow from all 
</Files> 
</Directory> 

<VirtualHost *:80> 
ServerAdmin [email protected] 
ServerName toastprojects.power.on.net 
WSGIScriptAlias/"C:/git_clones/adaptwater/adaptwater/adaptwater/wsgi.py" 
Alias /static/ "C:/git_clones/adaptwater/adaptwater/static/" 
</VirtualHost> 

<Directory "C:/git_clones/adaptwater/adaptwater/static/"> 
Order deny,allow 
Allow from all 
</Directory> 

<Directory "C:/git_clones/adaptwater/adaptwater/adaptwater/"> 
<Files wsgi.py> 
Order deny,allow 
Allow from all 
</Files> 
</Directory> 

ho impostato wsgi.py per ciascuno, come così (con il percorso assoluto corrispondente alla posizione particolare del progetto):

L'esecuzione di questi su localhost tramite il server di sviluppo (e con nginx che serve file statici) allo stesso tempo funziona senza problemi. E supponendo che voglio accedere ai siti uno alla volta, e riavviare Apache, ognuno di essi viene eseguito esternamente su base individuale. Qualcosa di ovvio che causa questo problema?

Cheers, Shane


Aggiornamento:

A questo punto devo concludere che ciò che voglio fare non può essere fatto a causa del meno di matrimonio perfettamente felice di mod_wsgi e la piattaforma di Windows (Avrei dovuto menzionare la piattaforma - trascurata nella mia fretta - windows 7 professional 64). Non riesco a utilizzare WSGIDaemonProcess e WSGIApplicationGroup deve essere impostato come globale e da quello che ho potuto ricavare dalle discussioni pertinenti a questo problema, significa che sono in un vicolo cieco.

Sono riuscito a servire il secondo progetto senza alcuna strana ibridazione delle impostazioni utilizzando nginx & fastcgi invece ... come soluzione temporanea. Finora questo combo mi ha trattato gentilmente.

L'opzione ancora meno stellare di nginx che serve i file statici e il proxy che passa al server di django dev funziona anche come una disposizione parallela per la pubblicazione esterna. Devo ancora provare due versioni del progetto nginx/fastcgi servite contemporaneamente - ma lascerò che sia un esercizio per un'altra fantastica giornata di frustrazione.

risposta

0

È necessario includere le direttive di configurazione <directory> nelle corrispondenti direttive di configurazione <virtualhost>.

+0

Grazie! Darà quel rosso caldo. – toasterleavings

+0

Questo è da un vecchio progetto, ma dovrebbe avere tutto il necessario per andare avanti: [apache.conf] (https://github.com/twoolie/ProjectNarwhal/blob/master/example_project/apache.conf) – Thomas