Я кодирую веб-сервис на python, который использует базу данных Oracle. У меня установлен и работает cx_Oracle, но у меня возникают некоторые проблемы, когда я запускаю свой код Python как CGI с использованием Apache.
Например, следующий код отлично работает в командной строке:
#!/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, я получаю сообщение «cx_Oracle.InterfaceError: невозможно получить дескриптор среды Oracle» в журнале ошибок apache.
Я искал в сети, и все говорят, что я должен установить переменные среды ORACLE_HOME
и LD_LIBRARY_PATH
. Каким-то образом сценарий CGI не может получить доступ к этим переменным среды, даже когда я определяю их с помощью os.putenv
, как вы можете видеть в коде.
Что я делаю неправильно? Спасибо!