我在 CentOS 6.7 上使用 Django 1.8 以及 Apache 服务器版本: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
你可以在这里检查 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 上部署的任何其他选项。
通过运行
确保安装了 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
2020 年今天安装
mod_wsgi
的正确方法(来源: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
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
版本的内容。wsgi.load
文件
sudo nano /etc/apache2/mods-available/wsgi.load
删除
wsgi.load
的所有行以及过去 IV 的输出
VI. 确保启用
mod_wsgi
:
sudo a2enmod wsgi
VII. 重新启动 apache 服务
systemctl reload apache2
应为
mod_wsgi
启用 Apache
模块。确保您在 /etc/apache2/mods-enabled/
中设置了指向 wsgi.conf
和 wsgi.load
中的 /etc/apache2/mods-available/
的符号链接。
mod_wsgi
,它提供了一种使用简单工具wsgi
启动mod_wsgi-express
应用程序的便捷方法(无需设置httpd
配置的麻烦)。
我也有同样的问题。实际上我没有在httpd.conf文件中加载mod_wsgi模块。花了很多时间后我通过添加解决了
LoadModule wsgi_module modules/mod_wsgi.so
进入 httpd.conf 文件。然后就不再有错误了。
我也有类似的错误
命令“WSGIDeamonProcess”无效,可能拼写错误或由 服务器配置中未包含的模块
因为忘记在路径前写“/”
WSGIScriptAlias / /var/www...
确保 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 作为基础)。
接受的答案不能应用于CentOS;它适用于基于 Ubuntu / Debian 的 Linux。对于 CentOS / RHEL,您应该通过以下方式安装
mod_wsgi
:
sudo yum install python3-mod_wsgi
模块将自动加载,无需在
LoadModule
中显式指定 httpd.conf
。