代码之家  ›  专栏  ›  技术社区  ›  Mostafa Wattad

使用旧python版本的mod_wsgi运行时

  •  2
  • Mostafa Wattad  · 技术社区  · 8 年前

    我正在httpd服务上运行django服务器。 在安装了新的python之后,我用新python重建了mod_wsgi(与python参数一起使用)。 我还用新的python版本重建了mod_python。 我的新python路径是/usr/local/bin/python2.7。 WSGIPython主页/usr/local。

    但是,我在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.
    

    我错过了什么?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Graham Dumpleton    8 年前

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

    为此,返回并重新构建mod_wsgi,但将 LD_RUN_PATH 在构建mod_wsgi时,将环境变量添加到包含Python库的目录中,用于替代Pythons版本。

    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