2016-11-14 5 views
1

:(Nginx에 +의 gunicorn)/아파치가 읽고 있지 환경 변수 I는 무엇입니까

[01000] [unixODBC][Driver Manager]Can't open lib '/usr/local/nz/lib64/libnzodbc.so' : file not found (0) (SQLDriverConnect)" 

오류 PyODBC를 사용하여 연결을 만드는 동안. 이것은 장고 개발 서버를 통해 사용할 때 잘 동작합니다. 하지만 그것을 통해 사용합니다. GunicornNginx, 실패합니다.

  1. 인 unixODBC에 필요한 라이브러리의 일부

    가 누락되었습니다 : (개발 서버를 구성하는 동안) 때

    나는 과거에이 문제를 직면했다. Django 개발 서버로 작업하고 있기 때문에 이것은 문제가 될 수 없습니다.
  2. 환경 변수 PATHLD_LIBRARY_PATH에 내 드라이버 경로가없는 경우.

는 대부분의 경우 나는 2가 원인이라고 생각합니다. 나는 /etc/profile/etc/environment하지만 운이 환경 변수를 설정했습니다. 누구가 여기에서 틀릴지도 모른 지에 대하여 아이디어가 있는가?

편집 : 그것은 Gunicorn가 아니라 직접 사용하여 gunicorn 서버를 실행과는 아무 상관이 없습니다 :

gunicorn --bind 0.0.0.0:8000 my_project.wsgi:application 

잘 작동합니다. wsgi를 통해 Nginx와 통신하는 동안 문제가 발생합니다.


모든 필수 환경 방법은 제대로 잘 살고있다 :

[email protected]_HOST:/tmp/webadmin$ env 
LD_LIBRARY_PATH=/usr/local/nz/lib64 
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/nz/bin64 
NZ_ODBC_INI_PATH=/home/mquadri/CONFIG 
HOME=/home/mquadri 
ODBCINI=/home/mquadri/CONFIG/odbc.ini 
NETEZZA=/usr/local/nz 

사람이 유용 (여기에 나열된 모든 파일이 이미 존재하는) 찾을 수있는 경우에 ldd의 출력

[email protected]_HOST:/tmp/webadmin$ ldd /usr/local/nz/lib64/libnzodbc.so 
    linux-vdso.so.1 => (0x00007fff96dfa000) 
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f286f0f1000) 
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f286edeb000) 
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f286ebcc000) 
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f286e9c8000) 
    libkrb5.so.3 => /usr/local/nz/lib64/libkrb5.so.3 (0x00007f286e7e8000) 
    libkrb5support.so.0 => /usr/local/nz/lib64/libkrb5support.so.0 (0x00007f286e6da000) 
    libcom_err.so.3 => /usr/local/nz/lib64/libcom_err.so.3 (0x00007f286e5d7000) 
    libk5crypto.so.3 => /usr/local/nz/lib64/libk5crypto.so.3 (0x00007f286e494000) 
    /lib64/ld-linux-x86-64.so.2 (0x00007f286f806000) 
    libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f286e278000) 

편집 2 : settings.py 개발 서버에서이 환경 변수를 명시 적으로 설정했지만 nginxInternal Server Error이됩니다.

답변

0

나중에 아파치를 사용해 보았는데 동일한 문제가 발견되었습니다. 많은 연구를하면서, 나는 아파치가 시스템 환경을 읽을 수 없다는 것을 발견했다. 일부 환경 변수를 사용하려면 apache2/envars에 정의해야합니다. 파일에 내 변수를 추가했습니다.

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/nz/lib64" 
export PATH="$PATH:/usr/local/nz/bin64" 
export NETEZZA="/usr/local/nz" 
export NZ_ODBC_INI_PATH="/etc"