我在启动Apache时遇到“无效命令'WSGIScriptAlias'”错误

时间:2012-03-30 17:13:23

标签: django mod-wsgi

我想将我的Django项目部署到EC2服务器。我安装了mod_wsgi。

并在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>

4 个答案:

答案 0 :(得分:42)

问题是mod_wsgi未正确安装。

解决方案(使用Apache 2):

  1. 安装Apache:

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

    $ sudo apt-get install libapache2-mod-wsgi
    
  3. 这应该可以正常工作。

答案 1 :(得分:15)

该错误明确指出mod_wsgi未加载到Apache中。

在什么文件中:

LoadModule wsgi_module     libexec/httpd/mod_wsgi.so

您是否使用适当的Linux发行版管理命令启用了mod_wsgi模块,以便在使用mod_wsgi的发行版二进制包时加载它?

答案 2 :(得分:1)

只是添加,我如何解决我的问题 如果您不知道模块的位置 只是搜索它们

 locate mod_alias.so

那么你可能得到像

这样的输出
/usr/lib/apache2/modules/mod_alias.so

然后您可以在配置文件中添加该位置

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

答案 3 :(得分: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