无效命令 WSGIDaemonProcess 在 CentOS 6.7 上部署 Django 应用程序
Invalid command WSGIDaemonProcess Deploy Django application on CentOS 6.7
我在 CentOS 6.7 上使用 Django 1.8 和 Apache 服务器版本: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
感谢 advance.Please 建议使用 djnago 1.8.
在 CentOS 6.7 上部署任何其他选项
应该为 Apache
启用 mod_wsgi
模块。确保在 /etc/apache2/mods-enabled/
中设置了指向 wsgi.conf
和 /etc/apache2/mods-available/
中的 wsgi.load
的符号链接。
附带说明一下,查看最新一代的 mod_wsgi
,它提供了一种使用简单工具 mod_wsgi-express
启动 wsgi
应用程序的便捷方式(无需设置的麻烦设置 httpd
配置)。
确保你安装了 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
我有一个类似的错误
Invalid command 'WSGIDeamonProcess', perhaps misspelled or defined by
a module not included in the server configuration
因为忘记在路径前写“/”
WSGIScriptAlias / /var/www...
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
II.使用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
确保在 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 作为基础)。
我遇到了同样的问题。实际上我没有在 httpd.conf 文件中加载 mod_wsgi 模块。花了很多时间后,我通过添加
解决了
LoadModule wsgi_module modules/mod_wsgi.so
进入 httpd.conf 文件。然后就没有错误了。
我在 CentOS 6.7 上使用 Django 1.8 和 Apache 服务器版本: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
感谢 advance.Please 建议使用 djnago 1.8.
在 CentOS 6.7 上部署任何其他选项应该为 Apache
启用 mod_wsgi
模块。确保在 /etc/apache2/mods-enabled/
中设置了指向 wsgi.conf
和 /etc/apache2/mods-available/
中的 wsgi.load
的符号链接。
附带说明一下,查看最新一代的 mod_wsgi
,它提供了一种使用简单工具 mod_wsgi-express
启动 wsgi
应用程序的便捷方式(无需设置的麻烦设置 httpd
配置)。
确保你安装了 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
我有一个类似的错误
Invalid command 'WSGIDeamonProcess', perhaps misspelled or defined by a module not included in the server configuration
因为忘记在路径前写“/”
WSGIScriptAlias / /var/www...
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
II.使用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
确保在 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 作为基础)。
我遇到了同样的问题。实际上我没有在 httpd.conf 文件中加载 mod_wsgi 模块。花了很多时间后,我通过添加
解决了LoadModule wsgi_module modules/mod_wsgi.so
进入 httpd.conf 文件。然后就没有错误了。