web-dev-qa-db-ja.com

python2.7を使用してcentosにmod_wsgiをインストール中にエラーが発生しました

Mod_wsgiフォルダーで「make」を実行すると、このエラーが発生します

以下を使用して構成しました

./configure --with-apxs=/usr/local/Apache/bin/apxs   --with-python=/opt/python27/bin/python

/ usr/bin/ld:/opt/python27/lib/libpython2.7.a(node.o):「ローカルシンボル」に対する再配置R_X86_64_32は、共有オブジェクトを作成するときに使用できません。 -fPICで再コンパイル/opt/python27/lib/libpython2.7.a:シンボルを読み取れませんでした:不正な値collect2:ldが1つの終了ステータスを返しましたapxs:エラー:コマンドがrc = 65536で失敗しました

このリンク 解決策はありますが、完全には理解できませんでした

1)How can i found that i have compiled x32bit or x64 bit version of python 
2)I didn't understand about what symbolic link he was talking about
5
Mirage

重要な点は、Python with --enable-sharedを再構築することです。これを行っていない場合、シンボリックリンクのコメントは関係ありません。最近のPython/mod_WSGIバージョンにも適用しないでください。

7

Pythonを再コンパイルする

Python --enable-sharedだけで再コンパイルするだけでは不十分です。 共有ライブラリのロード中にエラーが発生する

Python 2.7.xを/usr/local/binにインストールする場合は、LDFLAGSオプションを使用して構成する必要があります:

cd Python-2.7.x
make distclean  # For re-compiling only
./configure --enable-shared --prefix=/usr/local LDFLAGS="-Wl,--rpath=/usr/local/lib"
make
Sudo make altinstall

(システムPythonとマニュアルページのシンボリックリンクの変更を避けるために、altinstallの代わりにinstallを使用してください。要するに、install = altinstall + bininstall + maninstall

コンパイルmod_wsgi

Apache(のコンパイル済みバージョン)が/usr/local/Apacheにインストールされているとすると、次のようにPython 2.7に対してmod_wsgiをコンパイルします。

cd mod_wsgi-x.x.x
./configure LDFLAGS="-Wl,--rpath -Wl,/usr/local/lib" --with-apxs=/usr/local/Apache/bin/apxs --with-python=/usr/local/bin/python2.7
make
Sudo make install

LDFLAGSなしでmod_wsgiをコンパイルすると、Apacheは次のように文句を言います。

Cannot load /usr/local/Apache/modules/mod_wsgi.so into server: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
0
Rockallite