我在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包管理。
答案 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