2011-12-27 2 views
1

오라클에 액세스하는 Apache/mod_wsgi 설치에서 Django가 작동하도록하는 데 심각한 문제가 있습니다. 나는이 설정은 CentOS는 6 호스트에서 실행 한, 나는 나의 아파치 로그에이 오류를 받고 있어요 :CentOS 6에서 cx_Oracle을 가져 오는 방법은 무엇입니까?

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

내가 파이썬 명령 줄에서 cx_Oracle을 가져 오려고 경우는 뿌리와 아파치 사용자 모두에서 잘 작동 . 내가 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을 변경없이 추가했습니다.

아파치 사용자가 import cx_Oracle 명령을 실행할 때만이 오류가 발생합니다.이 사용자로 로그인해도 파이썬 인터프리터에서 명령을 실행할 수 있습니다.

답변

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

아직도 작동하지 않습니다. 같은 오류 메시지가 나타납니다. 어떻게 파이썬 아파치가 WSGI를 실행하기 위해 사용 하는지를 어떻게 알 수 있습니까? 어쨌든, 저는'import cx_Oracle' 명령을 apache로 실행할 수 있습니다. 이것은 나에게 이상합니다. – lmisael

관련 문제