centos 6.5 上 Apache 2.2.15 上的 Django

Posted

技术标签:

【中文标题】centos 6.5 上 Apache 2.2.15 上的 Django【英文标题】:Django on Apache 2.2.15 on centos 6.5 【发布时间】:2017-09-11 18:02:15 【问题描述】:

我在我的 centos 生产服务器(centos 6.5)中安装了 django(1.11) 和 python 3.5 和 virtualenv

当我使用 python manage.py runserver 在本地启动 django 时,我可以使用 django,但我不能在 apache 上使用 mod WSGI 服务我的 django 我在 /conf.s/django.conf 上测试了非常不同的配置,但我遇到了这个错误:

mod_wsgi (pid=5713): Target WSGI script '/var/www/path/to/site/myapp/wsgi.py' cannot be loaded as Python module.

这是我在 /etc/httpd/conf.d/django.conf 中的 django.conf

<VirtualHost *:80>
WSGIProcessGroup myapp 
WSGIDaemonProcess myapp display-name=%GROUP
ServerName test.com
ServerAlias www.test.com
ServerAdmin email@gmail.com
DocumentRoot    /path/to/root
WSGIScriptAlias / /path/to/root/myapp/wsgi.py
Alias /static /path/to/root/myapp/static
ErrorLog  /path/to/error.log
CustomLog /path/to/access.log combined </VirtualHost>

我该如何处理这个问题?

【问题讨论】:

你是如何安装 mod-wsgi 的?它必须针对某个 Python 版本进行编译。如果你安装了 yum,我猜你从 yum 得到了一个非常过时的 Python 2 版本。 是的,wsgi 是用 yum 安装的,我如何为 python 3.5 编译 wsgi? 【参考方案1】:

问题似乎是运行yum 的安装版本mod_wsgi,它已经非常过时并且针对Python 2.7 编译。安装 Python 3.5 和mod_wsgi 的最简单方法是使用 IUS 存储库,它为 RedHat 和 CentOS 提供最新的软件包。我假设你运行的是 64 位。

首先,卸载从EPEL安装的mod_wsgi

sudo yum -y remove mod_wsgi

这将安装 IUS 存储库:

sudo yum -y install https://centos6.iuscommunity.org/ius-release.rpm

安装后,您可以安装 Python 3.5 和 mod_wsgi

sudo yum -y install python35u
sudo yum -y install python35u-pip
sudo yum -y install python35u-mod_wsgi

这将在/usr/lib64/httpd/modules/mod_wsgi_python3.5.so 安装mod_wsgi,这是您必须在Apache 配置中加载它的位置:

LoadModule wsgi_module /usr/lib64/httpd/modules/mod_wsgi_python3.5.so

您还需要确保在创建 virtualenv 时指向 Python 3.5:

virtualenv -p /usr/bin/python3.5 myapp

所有这些都是确保相同的 Python 版本 (3.5) 通过您的 virtualenv 和您的 Web 服务器 (mod_wsgi) 运行您的 Django 代码,而不会影响系统 Python 版本(CentOS 6 上的版本 2.6.6 )。祝你好运!

【讨论】:

以上是关于centos 6.5 上 Apache 2.2.15 上的 Django的主要内容,如果未能解决你的问题,请参考以下文章

centos-6.5 安装apache

CentOS 6.5上安装并配置Tomcat

无法让 Sqoop 1.99.3 在 64 位 Centos 6.5 上与 Apache Hadoop 2.4.0 一起使用

Building Apache Thrift on CentOS 6.5

CentOS 6.5下源码安装LAMP(Linux+Apache+Mysql+Php)环境

CentOS 6.5 apache源码安装2.0版