【问题标题】:I am getting "Invalid command 'WSGIScriptAlias' " error while starting Apache启动 Apache 时出现“无效命令 'WSGIScriptAlias'”错误
【发布时间】:2012-04-14 09:44:03
【问题描述】:

我想将我的 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>

【问题讨论】:

  • 您确定运行 Apache 的用户对 mod_wsgi.so 具有读取权限吗?

标签: django mod-wsgi


【解决方案1】:

问题是mod_wsgi没有正确安装。

解决方案(使用 Apache 2):

  1. 安装 Apache:

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

    $ sudo apt-get install libapache2-mod-wsgi
    

这应该可以正常工作。

【讨论】:

  • 为什么官方文档中没有包含 libapache2-mod-wsgi?非常感谢@om choudhary
  • 我不得不安装libapache2-mod-wsgi-py3
【解决方案2】:

该错误特别表明 mod_wsgi 没有被加载到 Apache 中。

在什么文件中:

LoadModule wsgi_module     libexec/httpd/mod_wsgi.so

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

【讨论】:

【解决方案3】:

只是补充一下,我是如何解决我的问题的 如果您不知道模块的位置 只需搜索它们

 locate mod_alias.so

那么你可能会得到像

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

然后你可以在你的配置文件中添加那个位置

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

【讨论】:

    【解决方案4】:

    我刚刚在 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 行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-26
      • 2020-07-02
      • 1970-01-01
      • 2018-10-14
      • 2015-07-17
      • 2014-09-07
      • 2020-09-14
      • 1970-01-01
      相关资源
      最近更新 更多