2

私は mod_wsgi + Python2.7 で作業しています。mod_wsgi をインストールした後、httpd を再起動しました。以下が私のApacheエラーログに出力されました。

"mod_wsgi pid=XXXX" Unable to import 'site' module.

IP アドレスをヒットすると、

" Import error No module named os "

Apache エラー ログに記録されます。

yum install mod_wsgiを使用して mod_wsgi をインストールしました。インストールするより良い方法は、推奨される Python バージョンを使用してソースからコンパイルすることです。

(ただし、そうすると失敗しました。./configureの後にmake を実行すると、次のエラーが発生しました。

/usr/lib64/apr-1/build/libtool --silent --mode=link gcc -o mod_wsgi.la  -rpath /usr/lib64/httpd/modules -module -avoid-version    mod_wsgi.lo -L/usr/local/lib -L/usr/local/lib/python2.7/config -lpython2.7 -lpthread -ldl -lutil -lm
/usr/bin/ld: /usr/local/lib/libpython2.7.a(node.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libpython2.7.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
apxs:Error: Command failed with rc=65536
.
make: *** [mod_wsgi.la] Error 1

)

Installation Issuesのリードを使用して、mod_wsgi.so のインストールに問題がないかどうかを確認しました。

実行中

ldd /etc/httpd/modules/mod_wsgi.so

生産された

[root@BLFLDT9454T mod_wsgi-3.4]# ldd /etc/httpd/modules/mod_wsgi.so
    libpython2.4.so.1.0 => /usr/lib64/libpython2.4.so.1.0 (0x00002b90b505d000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b90b5392000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00002b90b55ae000)
    libutil.so.1 => /lib64/libutil.so.1 (0x00002b90b57b3000)
    libm.so.6 => /lib64/libm.so.6 (0x00002b90b59b6000)
    libc.so.6 => /lib64/libc.so.6 (0x00002b90b5c39000)
    /lib64/ld-linux-x86-64.so.2 (0x0000003530400000)

これは、共有ライブラリが既に使用されていることを示しています (私が間違っていなければ)。

では、どこが間違っているのでしょうか?

ありがとう、ショウビク

4

1 に答える 1

0

参照するドキュメントでは、次のように述べています。

ああ。y Python の configure が実行されたとき、Python インストールは --enable-shared でインストールされませんでした。

また、インストールされているものがまだ Python 2.4 を参照している場合、既存の mod_wsgi を適切に削除していないようです。

于 2013-08-28T09:11:29.913 に答える