Oracle データベースを使用する Python で Web サービスをコーディングしています。cx_Oracle をインストールして動作させていますが、Apache を使用して Python コードを CGI として実行すると問題が発生します。
たとえば、次のコードはコマンド ラインで完全に機能します。
#!/usr/bin/python
import os
import cx_Oracle
import defs as df
os.putenv('ORACLE_HOME', '/oracledb/10.2.0/')
os.putenv('LD_LIBRARY_PATH', '/oracledb/10.2.0/lib')
con = cx_Oracle.Connection(df.DB_USER, df.DB_PASS, df.DB_SID)
print con
しかし、CGI として実行すると、Apache エラー ログに「cx_Oracle.InterfaceError: Oracle 環境ハンドルを取得できません」というメッセージが表示されます。
ORACLE_HOME
ネットを検索したところ、環境変数と環境変数を設定する必要があると誰もが言っていLD_LIBRARY_PATH
ます。os.putenv
どういうわけか、コードでわかるように、CGI スクリプトはこの環境変数を使用して定義しても、この環境変数にアクセスできません。
私は何を間違っていますか?ありがとう!