mod_wsgi运行时使用旧的python版本

时间:2016-09-20 09:45:28

标签: python django apache mod-wsgi

我在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。

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

tools:ignore="all"

我缺少什么?

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

1 个答案:

答案 0 :(得分:1)

当您安装与系统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文件上,它应该使用/usr/local/lib而不是/usr/lib的Python库。

您还需要设置:

WSGIPythonHome /usr/local