Django在Apache 2.2.15上的centos 6.5

时间:2017-04-15 17:30:38

标签: python django apache centos wsgi

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

当我使用python manage.py runserver在本地启动django时我可以使用django但是我无法使用mod WSGI在apache上提供我的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>

我该如何处理这个问题?

1 个答案:

答案 0 :(得分:0)

问题似乎是运行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

这会在mod_wsgi安装/usr/lib64/httpd/modules/mod_wsgi_python3.5.so,您需要在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版本(版本2.6.6 on CentOS 6)。祝你好运!