2012-03-30 20 views
16

Deseo implementar mi proyecto Django en el servidor EC2. Instalé mod_wsgi.Recibo el error "Comando no válido 'WSGIScriptAlias'" al iniciar Apache

Y configuración hecha como en el tutorial de django.

estoy recibiendo el siguiente:

Invalid command 'WSGIScriptAlias', perhaps misspelled or defined by a module not included in the server configuration 

Cuál es la razón? mod_wsgi no está instalado correctamente?

LoadModule wsgi_module  libexec/httpd/mod_wsgi.so 
LoadModule alias_module libexec/httpd/mod_alias.so 


WSGIScriptAlias//usr/local/apache2/htdocs/mysite/mysite/wsgi.py 
WSGIPythonPath /usr/local/apache2/htdocs/mysite/mysite 


<Directory /path/to/mysite.com/mysite> 
<Files wsgi.py> 
Order deny,allow 
Allow from all 
</Files> 
</Directory> 
+0

¿Cómo puede esperar que alguien lo ayude según esta información? – Marcin

+0

¿Estás seguro de que el usuario Apache ejecuta el permiso de lectura en 'mod_wsgi.so'? –

Respuesta

13

El error indica específicamente que mod_wsgi no se está cargando en Apache.

En qué archivo es:

LoadModule wsgi_module  libexec/httpd/mod_wsgi.so 

¿Ha habilitado el módulo de comando mod_wsgi con la gestión adecuada distribución Linux para que se cargará si se ha utilizado el paquete binario para distribuciones mod_wsgi?

+1

Para mí funcionó emitiendo el siguiente comando: sudo a2enmod wsgi (http://stackoverflow.com/a/20627328/811335) –

38

El problema es que mod_wsgi no está instalado correctamente.

solución (utilizando Apache 2):

  1. instalar Apache:

    $ sudo apt-get install apache2 
    
  2. instalación libapache2-mod-wsgi:

    $ sudo apt-get install libapache2-mod-wsgi 
    

Y esto debería funcionar bien.

+0

¿por qué el libapache2-mod-wsgi no está incluido en los documentos oficiales? muchas gracias @om choudhary – brennan

0

sólo para añadir, cómo resolví mi problema si no se conoce la ubicación de los módulos sólo la búsqueda de ellos

locate mod_alias.so 

entonces usted puede obtener una salida como

/usr/lib/apache2/modules/mod_alias.so 

luego puede agregar esa ubicación en su archivo de configuración

LoadModule alias_module /usr/lib/apache2/modules/mod_alias.so 
1

Acabo de encontrar el mismo problema en openSUSE 12.2, con apache 2.2.

Incluso si wsgi está instalado, es una buena idea comprobar si se ha activado. Lo que quiero decir es esto:

#outputs a list of registered modules 
/usr/sbin/httpd2 -M 

Si wsgi_module (shared) no aparece, agregue wsgi a la variable APACHE_MODULES, dentro del archivo /etc/sysconfig/apache2

De esta manera pude evitar por completo la línea de LoadModule httpd.conf.

Cuestiones relacionadas