我越來越:(Nginx的+ gunicorn)/阿帕奇不讀書環境變量
[01000] [unixODBC][Driver Manager]Can't open lib '/usr/local/nz/lib64/libnzodbc.so' : file not found (0) (SQLDriverConnect)"
錯誤,而使用PyODBC
建立連接。當我通過Django Development服務器使用它時,這工作正常。但通過使用它。 Gunicorn
和Nginx
,它失敗。
我過去遇到這個問題(在配置開發服務器)時:
- 通過一些必要的unixODBC庫的人失蹤。因爲它與Django開發服務器一起工作,所以這不是問題
- 當環境變量
PATH
和LD_LIBRARY_PATH
沒有指向我的驅動程序的路徑時。
很可能我認爲第二個是原因。我嘗試在/etc/profile
和/etc/environment
中設置環境變量,但沒有運氣。有沒有人有關於這裏可能會出錯的想法?
編輯:它無關Gunicorn
直接運行使用gunicorn服務器:
工作正常。 問題是通過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
開發服務器運行正常,但nginx
給出Internal Server Error
顯式設置這些環境變量。