2011-12-27 17 views
1

OracleにアクセスするApache/mod_wsgiインストールでDjangoを動作させるのに深刻な問題があります。私は、このセットアップはCentOSの6ホスト上で実行している、と私は私のApacheのログにこのエラーを取得しています:CentOS 6でcx_Oracleをインポートするにはどうすればよいですか?

Error loading cx_Oracle module: libclntsh.so.10.1: cannot open shared object file: No such file or directory 

私はPythonのコマンドラインからcx_Oracleをインポートしようとした場合、それは根とApacheユーザーの両方で正常に動作します。私はORACLE_HOMELD_LIBRARY_PATH$ORACLE_HOME/lib)を正しく設定しました:~/.bashrc/etc/ld.so.conf.d/oracle.conf~/.bash_profile、どこでもenv varを設定できます。

私も/usr/lib$ORACLE_HOME/lib/libclntsh.so.10.1へのハードリンクやシンボリックリンクを作ってみましたが、私は関係なく、私が/usr/libおよびファイルまで/usrから発行するどのように多くのchmod 777パーミッションエラーを得ませんでした。

私はORACLE_HOMELD_LIBRARY_PATH~/etc/sysconfig/httpdを変更なしで追加しました。

明らかにこのエラーはApacheユーザーがimport cx_Oracleコマンドを実行したときにのみ発生しますが、このユーザーでログインしてもPythonインタープリタからコマンドを実行できます。

答えて

2

ソースコードからcx_Oracleをビルドする場合は、LD_RUN_PATH環境変数をOracleの.soファイルを含むlibディレクトリへのパスに設定し、その場所をcx_Oracle .soに埋め込み、libclntsh.soをLD_LIBRARY_PATHが設定されていなくても実行時に実行できます。

+0

私はすでにこのオプションを使用せずにcx_Oracleを構築しました。だから私はちょうどそのvarを設定し、それを再構築し、それは動作する必要がありますか、または私はそれを最初に削除する必要があります再構築する前に? – lmisael

+0

すでにビルド済みのバージョンを使用しないように、クリーンなcx_Oracleソースコードから開始する必要があります。変数は、ユーザー環境で設定およびエクスポートする必要があります。 cx_Oracleのビルド/インストールを完了したら、それ以降必要でない変数を設定解除します。 –

+0

まだ動作しません。同じエラーメッセージが表示されます。どのPython ApacheがWSGIの実行に使用されているかをどのように知ることができますか?とにかく、私はコマンド 'import cx_Oracle'をapacheとして実行することができます。これは私には最も不思議です。 – lmisael

関連する問題