2012-03-30 15 views
16

Chcę wdrożyć mój projekt Django na serwerze EC2. Zainstalowałem mod_wsgi.Otrzymuję komunikat "Błąd polecenia" WSGIScriptAlias ​​"podczas uruchamiania Apache

Dokonano konfiguracji, jak w samouczku django.

Otrzymuję następujący:

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

Jaki jest powód? mod_wsgi nie jest zainstalowany poprawnie?

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

Jak możesz oczekiwać, że ktokolwiek pomoże ci w oparciu o te informacje. – Marcin

+0

Czy jesteś pewien, że użytkownik Apache działa tak, jak ma uprawnienia do odczytu dla 'mod_wsgi.so'? –

Odpowiedz

13

Błąd wyraźnie wskazuje, że mod_wsgi nie jest ładowany do Apache.

W jaki plik jest:

LoadModule wsgi_module  libexec/httpd/mod_wsgi.so 

Czy włączyć moduł mod_wsgi z odpowiedniego polecenia zarządzania dystrybucją systemu Linux, dzięki czemu będzie on ładowany, jeśli użyto distro binarne pakiety dla mod_wsgi?

+1

Dla mnie zadziałało to wydaniem następującego polecenia: sudo a2enmod wsgi (http://stackoverflow.com/a/20627328/811335) –

38

Problem polega na tym, że mod_wsgi nie jest poprawnie zainstalowany.

Solution (przy użyciu Apache 2):

  1. zainstalować Apache:

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

    $ sudo apt-get install libapache2-mod-wsgi 
    

I to powinno działać dobrze.

+0

dlaczego libapache2-mod-wsgi nie jest zawarty w oficjalnych dokumentach? wielkie dzięki, @om choudhary – brennan

0

tylko dodać, Jak rozwiązać mój problem jeśli nie znać lokalizację modułów wystarczy wyszukać dla nich

locate mod_alias.so 

wtedy można uzyskać wyjścia jak

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

następnie możesz dodać tę lokalizację do pliku konfiguracyjnego

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

Właśnie napotkałem ten sam problem na openSUSE 12.2, z apache 2.2.

Nawet jeśli wsgi jest zainstalowany, dobrze jest sprawdzić, czy został on aktywowany. Co mam na myśli to:

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

Jeśli wsgi_module (shared) nie pojawi, dodaj wsgi zmiennej APACHE_MODULES, wewnątrz pliku /etc/sysconfig/apache2

W ten sposób mogłem uniknąć całkowicie linię LoadModule z httpd.conf.

Powiązane problemy