无效命令WSGIDaemonProcess在CentOS 6.7上部署Django应用程序

Him*_*dua 17 python apache django centos6

我在CentOS 6.7上使用Django 1.8Apache Server版本:Apache/2.2.15(Unix).

我已经按照如何在CentOS 7上使用Apache和mod_wsgi服务Django应用程序中的步骤进行操作. 但是在最后一步,当我使用命令启动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
Run Code Online (Sandbox Code Playgroud)

你可以在这里查看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
Run Code Online (Sandbox Code Playgroud)

在此先感谢.请使用djnago 1.8建议在CentOS 6.7上部署任何其他选项.

sha*_*a12 18

通过运行确保安装了wsgi软件包

sudo a2enmod wsgi
Run Code Online (Sandbox Code Playgroud)

如果未安装,请执行以下命令进行安装

对于python2

sudo apt-get install python-pip apache2 libapache2-mod-wsgi
Run Code Online (Sandbox Code Playgroud)

对于python3

sudo apt-get install python3-pip apache2 libapache2-mod-wsgi-py3
Run Code Online (Sandbox Code Playgroud)

  • 这有8个赞成票怎么样?最初的问题是关于CentOS,这个答案建议使用apt-get ?! (6认同)
  • 我在Ubuntu上搜索了相同的问题,因此进入了此页面。后来我找到了解决方案,如果有人像我一样落在同一页面上,我会在这里添加解决方案。 (4认同)
  • 问题是针对 CentOS 而不是针对 ubuntu,所以 apt 命令不起作用。 (3认同)

sno*_*ogg 10

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

一、卸载libapache2-mod-wsgi

sudo apt-get remove libapache2-mod-wsgi

sudo apt-get remove libapache2-mod-wsgi-py3
Run Code Online (Sandbox Code Playgroud)

二、使用pip安装mod_wsgi

pip install mod_wsgi
Run Code Online (Sandbox Code Playgroud)

如果已经安装,请更新它:

pip uninstall mod_wsgi
pip install mod_wsgi
Run Code Online (Sandbox Code Playgroud)

三、之后, mod_wsgi-express命令必须可用。使用它

mod_wsgi-express module-config
Run Code Online (Sandbox Code Playgroud)

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

sudo nano /etc/apache2/mods-available/wsgi.load
Run Code Online (Sandbox Code Playgroud)

wsgi.loadIV的输出中删除And 的任何行

六、确保mod_wsgi已启用:

sudo a2enmod wsgi
Run Code Online (Sandbox Code Playgroud)

七、重启你的 apache 服务

systemctl reload apache2
Run Code Online (Sandbox Code Playgroud)


sir*_*rfz 6

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

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