2017-04-15 54 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)。祝你好運!