2016-09-20 132 views
0

我正在httpd服务上运行一个django服务器。 我不得不升级我的python版本(2.7.12)。 安装新的python之后,我用新的python重新编译mod_wsgi(使用with-python参数)。 我也用新的python版本重建mod_python。 我的新python路径是/usr/local/bin/python2.7。 在/etc/httpd/conf.d/django.conf中添加了以下行: WSGIPythonHome/usr/local。使用旧python版本的mod_wsgi运行时版本

但是我看到这个错误在我的error_log文件(httpd的错误日志):

[Tue Sep 20 12:32:12.743338 2016] [:warn] [pid 8567:tid 139972130834496] mod_wsgi: Compiled for Python/2.7.12. 
[Tue Sep 20 12:32:12.743376 2016] [:warn] [pid 8567:tid 139972130834496] mod_wsgi: Runtime using Python/2.7.5. 

什么,我缺少什么?

仅供参考:我无法更改或重定向存在于/ usr/bin/python中的默认python,因为这会影响centos软件包管理。

回答

0

当您安装与系统Python相同X.Y版本的Python版本,但具有不同的修补程序级别时,需要强制运行时链接程序从新版Python版本的备用位置使用共享Python库。

为此,回去重建mod_wsgi,但在构建mod_wsgi时将LD_RUN_PATH环境变量设置为包含替代Python版本的Python库的目录。

make distclean 
./configure --with-python=/usr/local/bin/python2.7 
LD_RUN_PATH=/usr/local/lib make 
sudo make install 

如果工作正常,你应该能够运行:

ldd mod_wsgi.so 

上已安装的mod_wsgi.so文件,它应该使用Python库从/usr/local/lib,而不是/usr/lib

您还需要仍然设置:

WSGIPythonHome /usr/local 
+0

谢谢!! ,适合我! –