I am getting “Invalid command 'WSGIScriptAlias' ” error while starting Apache
我想将Django项目部署到EC2服务器。我安装了mod_wsgi。
并像django的教程中那样进行配置。
我得到以下信息:
1 | Invalid command 'WSGIScriptAlias', perhaps misspelled or defined by a module not included in the server configuration |
原因是什么? mod_wsgi未正确安装?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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> |
问题是
解决方案(使用Apache 2):
安装Apache:
1 | $ sudo apt-get install apache2 |
安装
1 | $ sudo apt-get install libapache2-mod-wsgi |
这应该可以正常工作。
该错误专门表明mod_wsgi没有被加载到Apache中。
在什么文件中:
1 | LoadModule wsgi_module libexec/httpd/mod_wsgi.so |
您是否使用适当的Linux发行版管理命令启用了mod_wsgi模块,以便在将发行版二进制软件包用于mod_wsgi时加载该模块?
我刚在Apache 2.2上的openSUSE 12.2上遇到了同样的问题。
即使已安装了wsgi,也最好检查一下是否已将其激活。我的意思是:
1 2 | #outputs a list of registered modules /usr/sbin/httpd2 -M |
如果未出现
中的变量
这样,我可以完全避免httpd.conf中的行
只是添加,我如何解决我的问题
如果您不知道模块的位置
只是搜索它们
1 | locate mod_alias.so |
然后您可能会得到类似
的输出
1 | /usr/lib/apache2/modules/mod_alias.so |
然后您可以在配置文件
中添加该位置
1 | LoadModule alias_module /usr/lib/apache2/modules/mod_alias.so |