2012-06-08 7 views
8

Seguí los documentos django sobre cómo implementar django 1.4 en apache usando mod_wsgi https://docs.djangoproject.com/en/dev/howto/deployment/wsgi/modwsgi/ en mac osx lion y cuando agrego WSGIPythonPath directive apache no se puede reiniciar. Sin embargo, mi aplicación no existe en la ruta. En el registro de Recibo un error que diceal configurar mod_wsgi para django 1.4 Apache no se inicia en mac osx después de agregar WSGIPythonPath a la configuración del host virtual

WSGIPythonPath no puede ocurrir dentro de la sección VirtualHost

aquí es lo que mi configuración de host virtual parece

<VirtualHost *:80> 
ServerAdmin [email protected] 
DocumentRoot "/Users/jamo/code/work/projects/bfpd/fapp" 
ServerName bfpd.dev 
ServerAlias bfpd.dev 
ErrorLog "/private/var/log/apache2/bfpd.dev-error_log" 
CustomLog "/private/var/log/apache2/bfpd.dev-access_log" common 
Alias /static/ /Users/jamo/code/work/projects/bfpd/fapp/fapp/static/ 
<Directory /Users/jamo/code/work/projects/bfpd/fapp/fapp/static> 
    Options Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
IndexOptions FancyIndexing 
</Directory> 
WSGIScriptAlias//Users/jamo/code/work/projects/bfpd/fapp/fapp/wsgi.py 
WSGIPythonPath /Users/jamo/code/work/projects/bfpd/fapp/ 
    <Directory /Users/jamo/code/work/projects/bfpd/fapp/fapp> 
    Options Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
    </Directory> 

    </VirtualHost> 

lo que estoy haciendo mal? ??

+2

solucionado el 'WSGIPythonPath/Users/jamo/code/work/projects/bfpd/fapp /' debe estar en el http.conf –

+0

debe responder su propia pregunta y luego aceptarla en 2 días para que otros puedan ver esta respuesta fácilmente. ¡Me alegra que lo hayas resuelto! Estoy seguro de que ayudará a alguien en el futuro. –

+1

¿Qué sucede si se implementa en un servidor compartido sin acceso de escritura a httpd? ¿Hay alguna otra alternativa? – hobs

Respuesta

9

Lo arreglé. WSGIPythonPath /Users/jamo/code/work/projects/bfpd/fapp/ debe estar en http.conf

+27

¿Pero cómo puedo hacer cuando tengo varias aplicaciones Django en el mismo servidor (cada una definida en un VirtualHost diferente en URL diferente)? –

+1

En realidad, este error no aparece siempre que defina 'WSGIPythonPath' fuera de un nodo' VirtualHost'. Esto es cierto para las pilas par * nix. – nemesisfixx

+2

@MartinTrigaux, los documentos dicen: 'Si se especifican varios directorios, deben estar separados por un ':' si se usa un sistema similar a UNIX, o ';' si usas Windows. Si cualquier parte de una ruta de directorio contiene un carácter de espacio, la cadena de argumento completo para WSGIPythonPath debe ser citada. – nemesisfixx

5

Como se menciona en el comentario de nemesisfixx, y especificada por el error en su pregunta original:

WSGIPythonPath no puede ocurrir dentro de la sección VirtualHost

Moving WSGIPythonPath fuera de VirtualHost resolvió el bloqueo de Apache en el servidor OS X.

$ cat sites/0000_any_80_mysite.com.conf 
WSGIPythonPath /Library/Server/Web/Data/Sites/mysite/django-app:/Users/owen/.virtualenvs/mysite:/Users/owen/.virtualenvs/mysite/lib/python2.7/site-packages 

<VirtualHost *:80> 
    ServerName mysite.com 
    ServerAdmin [email protected] 
    DocumentRoot "/Library/Server/Web/Data/Sites/mysite/site" 
    ... 
    WSGIScriptAlias /api /Library/Server/Web/Data/Sites/mysite/django-app/mysite/wsgi.wsgi 
    ... 
<VirtualHost> 

Se tomó una gran cantidad de Putzing para que consiga los caminos correctos (incluyendo ruta completa al-env sitio, que en un principio pensé que serían incluidos automáticamente después de añadir el nivel superior virtualenv).

Cuestiones relacionadas