我在我的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>
我该如何处理这个问题?
答案 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)。祝你好运!