2017-04-15 49 views
1

我安装Django(1.11)和Python 3.5的virtualenv在我的CentOS的生产服务器(CentOS的6.5)的Django在Apache 2.2.15在CentOS 6.5

当我在本地使用python manage.py runserver命令,我可以使用Django的开始Django的,但我不能为我与国防部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. 

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

<VirtualHost *:80> 
WSGIProcessGroup myapp 
WSGIDaemonProcess myapp display-name=%{GROUP} 
ServerName test.com 
ServerAlias www.test.com 
ServerAdmin [email protected] 
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> 

我该如何处理这个问题?

+0

你是怎么安装mod-wsgi的?它必须针对某个Python版本进行编译。如果你安装yum,我猜你已经从yum得到了一个非常过时的Python 2版本。 – FlipperPA

+0

是的,wsgi与yum一起安装,我如何编译python 3.5的wsgi? – Arash

回答

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版本(CentOS 6上的版本2.6.6)。祝你好运!