2012-03-30 11 views
16

Desidero distribuire il mio progetto Django sul server EC2. Ho installato mod_wsgi.Ricevo l'errore "Comando non valido 'WSGIScriptAlias" "durante l'avvio di Apache

E ha fatto la configurazione come nel tutorial di Django.

Sto ottenendo il seguente:

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

Qual è la ragione? mod_wsgi non è installato correttamente?

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

Come puoi aspettarti che qualcuno ti aiuti basandoti su queste informazioni. – Marcin

+0

Sei sicuro che l'utente Apache gira come ha permesso di leggere su 'mod_wsgi.so'? –

risposta

13

L'errore indica in particolare che mod_wsgi non viene caricato in Apache.

In che file è:

LoadModule wsgi_module  libexec/httpd/mod_wsgi.so 

Hai attivato il modulo mod_wsgi con adeguate comando di gestione distro Linux in modo che esso verrà caricato se è stato utilizzato pacchetti binari distro per mod_wsgi?

+1

Per me ha funzionato emettendo il seguente comando: sudo a2enmod wsgi (http://stackoverflow.com/a/20627328/811335) –

38

Il problema è che mod_wsgi non è installato correttamente.

Solution (utilizzando Apache 2):

  1. installare Apache:

    $ sudo apt-get install apache2 
    
  2. installare libapache2-mod-wsgi:

    $ sudo apt-get install libapache2-mod-wsgi 
    

E questo dovrebbe funzionare bene.

+0

perché la libapache2-mod-wsgi non è inclusa nei documenti ufficiali? grazie mille @om choudhary – brennan

0

solo aggiungere, come ho risolto il mio problema se non si conosce la posizione dei moduli basta cercare per loro

locate mod_alias.so 

allora si può ottenere l'output come

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

quindi è possibile aggiungere tale posizione nel file di configurazione

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

Ho appena incontrato lo stesso problema su openSUSE 12.2, con apache 2.2.

Anche se wsgi è installato, è una buona idea controllare se è stato attivato. Quello che voglio dire è questo:

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

Se wsgi_module (shared) non appare, aggiungere wsgi alla variabile APACHE_MODULES, all'interno del file /etc/sysconfig/apache2

questo modo ho potuto evitare del tutto la linea LoadModule da httpd.conf.

Problemi correlati