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_HOME
とLD_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_HOME
とLD_LIBRARY_PATH
~/etc/sysconfig/httpd
を変更なしで追加しました。
明らかにこのエラーはApacheユーザーがimport cx_Oracleコマンドを実行したときにのみ発生しますが、このユーザーでログインしてもPythonインタープリタからコマンドを実行できます。
私はすでにこのオプションを使用せずにcx_Oracleを構築しました。だから私はちょうどそのvarを設定し、それを再構築し、それは動作する必要がありますか、または私はそれを最初に削除する必要があります再構築する前に? – lmisael
すでにビルド済みのバージョンを使用しないように、クリーンなcx_Oracleソースコードから開始する必要があります。変数は、ユーザー環境で設定およびエクスポートする必要があります。 cx_Oracleのビルド/インストールを完了したら、それ以降必要でない変数を設定解除します。 –
まだ動作しません。同じエラーメッセージが表示されます。どのPython ApacheがWSGIの実行に使用されているかをどのように知ることができますか?とにかく、私はコマンド 'import cx_Oracle'をapacheとして実行することができます。これは私には最も不思議です。 – lmisael