2012-03-30 67 views
16

我想將我的Django項目部署到EC2服務器。我安裝了mod_wsgi。我在啓動Apache時出現「Invalid command'WSGIScriptAlias'」錯誤

並且像django的教程中做了配置。

我得到以下幾點:

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

的原因是什麼? mod_wsgi安裝不正確?

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

你怎麼可能期望任何人根據這些信息來幫助你。 – Marcin 2012-03-30 17:19:23

+0

您確定用戶Apache運行時對'mod_wsgi.so'具有讀取權限嗎? – 2012-03-30 21:28:29

回答

13

該錯誤具體表明mod_wsgi未被加載到Apache中。

在哪些文件是:

LoadModule wsgi_module  libexec/httpd/mod_wsgi.so 

你能夠用合適的Linux發行版的管理命令的mod_wsgi模塊,因此,如果您使用的發行版二進制包的mod_wsgi它會被加載?

+1

對我來說,它通過發出以下命令:sudo a2enmod wsgi(http://stackoverflow.com/a/20627328/811335) – 2014-06-06 04:36:54

38

問題是mod_wsgi安裝不正確。 (使用Apache 2)

解決方案:

  1. 安裝Apache:

    $ sudo apt-get install apache2 
    
  2. 安裝libapache2-mod-wsgi

    $ sudo apt-get install libapache2-mod-wsgi 
    

這應該能正常運行。

+0

爲什麼libapache2-mod-wsgi沒有包含在官方文檔中?非常感謝@om choudhary – brennan 2016-09-15 16:55:41

0

只是補充,我如何解決我的問題 ,如果你不知道該模塊 的位置,只是尋找他們

locate mod_alias.so 

,那麼你可能會得到輸出像

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

那麼你可以在你的配置文件中添加該位置

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

我剛剛在openSUSE 12.2上遇到了與Apache 2.2相同的問題。

即使安裝了wsgi,最好檢查它是否已被激活。我的意思是這樣的:

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

如果wsgi_module (shared)沒有出現,添加wsgi到變量APACHE_MODULES,文件/etc/sysconfig/apache2

內這樣我可以完全避免從httpd.conf中的行LoadModule