mod_wsgi.so:无法将mod_wsgi.so加载到服务器:libpython2.5.so.1.0:无法打开共享对象文件:没有这样的文件或目录

时间:2012-08-30 13:20:13

标签: apache mod-wsgi

当我输入:

[root@lts5 /]# ldd /usr/lib64/httpd/modules/mod_wsgi.so
    libpython2.5.so.1.0 => /root/epd-5.1.0/lib/libpython2.5.so.1.0 (0x00002b4b53ccf000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b4b54036000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00002b4b54251000)
    libutil.so.1 => /lib64/libutil.so.1 (0x00002b4b54456000)
    libc.so.6 => /lib64/libc.so.6 (0x00002b4b54659000)
    libm.so.6 => /lib64/libm.so.6 (0x00002b4b549b1000)
    /lib64/ld-linux-x86-64.so.2 (0x0000003d9f600000)

当我输入时,我怎么能做到:

[root@lts5srv1 /]# ldd mod_wsgi.so
ldd: ./mod_wsgi.so: No such file or directory

..显示相同的结果?

事实上,当我尝试重启服务器时:

[root@lts5srv1 mod_wsgi-2.3]# service httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd: httpd: Syntax error on line 202 of /etc/httpd/conf/httpd.conf: 
Cannot load /etc/httpd/modules/mod_wsgi.so into server: 
libpython2.5.so.1.0: cannot open shared object file: No such file or directory
                                                           [FAILED]

2 个答案:

答案 0 :(得分:3)

运行'ldd mod_wsgi.so'仅在与mod_wsgi.so文件位于同一目录中时才有效。

解释为什么要使用这样一个旧的mod_wsgi版本。你是自己从源代码编译mod_wsgi还是使用mod_wsgi的现有二进制文件?

如果从源代码编译,请使用mod_wsgi 3.4(最新版本),当您从源代码构建它时,请执行以下操作:

LD_RUN_PATH=/root/epd-5.1.0/lib make

LD_RUN_PATH会将Python库目录的位置嵌入到mod_wsgi.so中,这样它就可以在运行时找到它,因为你的库不在标准位置。

答案 1 :(得分:0)

  1. 将以下内容添加到/etc/ld.so.conf文件的第一行:

    /usr/local/lib
    include ld.so.conf.d/*.conf
    
  2. 运行ldconfig