重新启动 Apache 服务器

重新启动 Apache 服务器

我正在尝试配置 mod_wsgi 以使用 Python 2.7。

我下载并解压源代码并运行

./configure --with-python=/usr/local/bin/python2.7

此后 mod_wsgi.so-2.4 和 mod_wsgi.so-2.5 出现在 /usr/lib/apache2/modules 中。

我重新启动了服务器,但报告“内部服务器错误”。错误日志显示,启动时服务器报告使用的是 Python 2.5.2——与之前的版本相同。

如何让 Apache 运行 Python 2.7?如何正确配置 mod_wsgi 以与 Python 2.7 一起运行?

答案1

您安装的 mod_wsgi 系统包存在冲突。如果您不需要它们,请卸载 mod_wsgi 系统包。

另请务必阅读:

因为您可能需要在构建 mod_wsgi 时将 LD_RUN_PATH 设置为 /usr/local/lib,以便如果 /usr/local/lib 未在系统 ld.cache 中列出,它知道在运行时在哪里找到 Python 库。

您可能还需要设置:

WSGIPythonHome /usr/local

在 Apache 配置中,mod_wsgi 知道 Python 2.7 在哪里,因为它不在系统位置。

还要确保安装了 Python 2.7 和共享库。

答案2

这是配置 mod_wsgi 使用 Python2.7 的方法

我碰巧遇到了同样的问题。我正在查看卸载 mod_wsgi 并使用适当的配置重新安装它的选项。

阅读其中一篇文章后,我意识到没有必要卸载我当前的 mod_wsgi,我可以继续重新安装 mod_wsgi3.4(之前我有 v3.2),并使用 Python2.7 进行设置(似乎安装过程重写了所有内容,没有任何错误/冲突)。

因为我已经安装了 Python2.7。

我重新安装了 mod_wsgi-3.4(没有执行任何卸载)

[root@server ~]# cd ~

[root@server ~]# wgethttp://modwsgi.googlecode.com/files/mod_wsgi-3.4.tar.gz

[root@server ~]# tar xvf mod_wsgi-3.4.tar.gz

[root@server ~]# cd mod_wsgi-3.4

使用已安装的 python2.7 配置 mod_wsgi

[root@server ~]#./configure --with-python=/usr/local/bin/python2.7

[root@server ~]# 制作

[root@server ~]# 进行安装

下面两个命令非常重要。如果 libpython2.7.so.1.0 不在 /usr/local/lib 中,请将 /usr/local/lib 替换为您安装 libpython2.7.so.1.0 的文件夹。

[root@server ~]# LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/python

[root@server ~]# ldconfig

重新启动 Apache 服务器

[root@server ~]# 重启服务 httpd

[root@server ~]# ldd /etc/httpd/modules/mod_wsgi.so

上述命令的输出:第 2 行表示您的 mod_wsgi 现在正在使用 Python2.7 库。好极了!

    linux-vdso.so.1 =>  (0x00007fffc0aa9000)
    libpython2.7.so.1.0 => /usr/lib/libpython2.7.so.1.0 (0x00007f03a5b20000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f03a5903000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f03a56fe000)
    libutil.so.1 => /lib64/libutil.so.1 (0x00007f03a54fb000)
    libm.so.6 => /lib64/libm.so.6 (0x00007f03a5277000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f03a4ee2000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f03a6133000)

相关内容