5

私がタイプするとき:

[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]
4

2 に答える 2

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 に埋め込みます。これにより、ライブラリが標準の場所にない場合でも、実行時に見つけることができます。

于 2012-08-30T22:59:47.323 に答える
1
  1. /etc/ld.so.confファイルの 1 行目に以下を追加します。

    /usr/local/lib
    include ld.so.conf.d/*.conf
    
  2. 走るldconfig

于 2015-03-26T08:44:42.533 に答える