【问题标题】:Invalid command WSGIDaemonProcess Deploy Django application on CentOS 6.7无效的命令 WSGIDaemonProcess 在 CentOS 6.7 上部署 Django 应用程序
【发布时间】:2016-01-24 02:02:22
【问题描述】:

我在 CentOS 6.7 上使用 Django 1.8Apache 服务器版本:Apache/2.2.15 (Unix)。

我已按照How To Serve Django Applications with Apache and mod_wsgi on CentOS 7. 中的步骤进行操作 但在最后一步,当我使用命令启动 Apache 服务器时:service httpd start 而不是 systemctl start httpd 因为根据教程我有 Centos 6.7 而不是 CentOS 7。

出现以下错误:

Starting httpd: Syntax error on line 10 of /etc/httpd/conf.d/django.conf:
Invalid command 'WSGIDaemonProcess', perhaps misspelled or defined by a module ot included in the server configuration

你可以在这里查看 django.conf:

Alias /static /home/ftpispy/ispy/static
<Directory /home/ftpispy/ispy/static>
    Require all granted
</Directory>
<Directory /home/ftpispy/ispy/ispy>
    <Files wsgi.py>
        Require all granted
    </Files>
</Directory>
WSGIDaemonProcess ispy python-path=/home/ftpispy/ispy:/home/ftpispy/ispy/venv/lib/python2.7/site-packages
WSGIProcessGroup ispy
WSGIScriptAlias / /home/ftpispy/ispy/ispy/wsgi.py

在此先感谢您。请建议任何其他选项以在 CentOS 6.7 上使用 djnago 1.8 进行部署。

【问题讨论】:

    标签: python django apache centos6


    【解决方案1】:

    应为Apache 启用mod_wsgi 模块。确保在 /etc/apache2/mods-enabled/ 中设置了指向 wsgi.conf/etc/apache2/mods-available/ 中的 wsgi.load 的符号链接。

    附带说明,查看最新一代的mod_wsgi,它提供了一种使用简单工具mod_wsgi-express 启动wsgi 应用程序的便捷方式(无需设置httpd 配置的麻烦)。

    【讨论】:

      【解决方案2】:

      通过运行确保您已安装 wsgi 包

      sudo a2enmod wsgi
      

      如果没有安装,执行以下命令安装

      对于python2

      sudo apt-get install python-pip apache2 libapache2-mod-wsgi
      

      对于python3

      sudo apt-get install python3-pip apache2 libapache2-mod-wsgi-py3
      

      【讨论】:

      • 这怎么会有 8 个赞?最初的问题是关于 CentOS,这个答案建议使用 apt-get?!
      • 我为 Ubuntu 搜索了同样的问题,然后我登陆了这个页面。我后来找到了解决方案,如果其他人像我一样登陆同一页面,我会在此处添加它。
      • 嗨,我收到“没有可用的软件包 libapache2-mod-wsgi-py3”,请帮我解决这个问题。
      • 您用来安装 libapache2-mod-wsgi-py3 的完整命令是什么?尝试更新您的 apt-get,“sudo apt-get update”,然后尝试安装。
      • 问题是针对 CentOS 而不是针对 ubuntu,所以 apt 命令不起作用..
      【解决方案3】:

      我遇到了类似的错误

      无效的命令“WSGIDeamonProcess”,可能拼写错误或定义为 未包含在服务器配置中的模块

      因为忘记在路径前写“/

      WSGIScriptAlias / /var/www...

      【讨论】:

        【解决方案4】:

        2020 年今天安装mod_wsgi 的正确方法(来源:https://github.com/GrahamDumpleton/mod_wsgi/issues/233

        I.卸载libapache2-mod-wsgi

        sudo apt-get remove libapache2-mod-wsgi
        
        sudo apt-get remove libapache2-mod-wsgi-py3
        

        二.使用pip安装mod_wsgi

        pip install mod_wsgi
        

        如果已经安装,请更新:

        pip uninstall mod_wsgi
        pip install mod_wsgi
        

        III. 之后,mod_wsgi-express 命令必须可用。与

        一起使用
        mod_wsgi-express module-config
        

        IV. 获取它的输出,这是您需要告诉 Apache 在哪里可以找到新的 mod_wsgi 版本。
        V. 更新 wsgi.load文件

        sudo nano /etc/apache2/mods-available/wsgi.load
        

        删除wsgi.load 的任何行并超过IV

        的输出

        VI.确保mod_wsgi已启用:

        sudo a2enmod wsgi
        

        VII.重启你的apache服务

        systemctl reload apache2
        

        【讨论】:

        • tks 这么多伙计......你的好氛围;)
        【解决方案5】:

        确保在 CentOS 中安装了正确版本的 mod_wsgi。 yum repo 附带的 mod_wsgi 是基于 (iirc) python 2.6 编译的。您需要使用 python 2.7 编译的 mod_wsgi。

        我认为 [1] 可能会对您有所帮助,尽管它提到 CentOS 5/6 使用 python 2.4(CentOS 6.7 使用 python 2.6 作为基础)。

        [1] - https://blog.webhostpython.com/2015/01/12/how-to-install-python-2-7-with-mod_wsgi-on-a-centos-6-vps-or-server-with-cpanel/

        【讨论】:

          【解决方案6】:

          我遇到了同样的问题。实际上我没有在 httpd.conf 文件中加载 mod_wsgi 模块。花了很多小时后,我通过添加解决了

          LoadModule wsgi_module modules/mod_wsgi.so
          

          在 httpd.conf 文件中。然后就没有错误了。

          【讨论】:

            猜你喜欢
            • 2021-11-28
            • 1970-01-01
            • 2023-03-03
            • 1970-01-01
            • 1970-01-01
            • 2013-08-22
            • 2017-10-29
            • 2015-01-25
            • 2012-03-16
            相关资源
            最近更新 更多