2017-02-21 2 views
1

운영 체제를 가져 - 우분투 서버 14.04 푸른 VM아파치 mod_wsgi에 충돌 pyodbc

에 다른 파이썬 버전 (3.4.3, 3.6.0), 아파치와 mod_wsgi에 함께했습니다.

https://gist.github.com/joecampo/6f777a659b8132b9d6fe1c3589df394c의 지침을 사용하여 MS 기본 ODBC 드라이버가 설치되었으며 pyodbc는 pip를 사용하여 설치되었습니다.

내가 장고 포함 된 모드로 실행하는 응용 프로그램과를 설정 한 wsgi_module를 디버깅하려면 :

Program received signal SIGSEGV, Segmentation fault. 
import_types() at src/pyodbcmodule.cpp:223 
223 src/pyodbcmodule.cpp: No such file or directory. 
: 나는 pyodbc을 가져 모든 기능에 액세스 할 때

gdb /usr/local/apache2/bin/httpd 
run -X 

의 WSGI는 다음과 같은 오류와 함께 실패

python3 manage.py runserver 
: 나는 명령 줄에서 장고 응용 프로그램을 실행할 때

가져 오기 모듈은 잘 작동

해결 방법이 있습니까?

+0

로컬에서 실행하면 "LD_LIBRARY_PATH"가 공유 라이브러리를 찾도록 설정되어있을 수 있습니다. 그 환경 변수는 mod_wsgi에 대해 설정되지 않으며 쉽게 사용될 수 있도록 설정할 수 없습니다. 지역 환경에서''LD_LIBRARY_PATH''이란 무엇입니까? –

+0

echo $ LD_LIBRARY_PATH' 또는'env'를 실행하려고했습니다. 아무 것도 반환하지 않았습니다. mod_wsgi가 찾을 수없는 라이브러리를 알고 있다면/usr/lib에 소프트 링크를 만들 수 있습니다. 그것을 파악할 수있는 방법이 있습니까? – Vahagn

+0

''LD_LIBRARY_PATH''가 설정되어 있지 않으면, 그럴 가능성이 낮습니다. ''WSGIApplicationGroup % {GLOBAL}''을 (를) 설정하고 있습니까? 사용중인 모듈이 Python 하위 해석기에서 작동하지 않고 충돌 할 수 있습니다. 이 지시어는 주 인터프리터를 강제 사용하는데, 이것은 명령 행 Python을 사용할 때 모듈이 보는 것과 유사합니다. mod_wsgi의 데몬 모드를 아직 사용하지 않는 경우 사용하는 것이 좋습니다. –

답변

0

파이썬 피라미드 프로젝트를 설정할 때 동일한 문제가 발생했으며 은 이전 버전의 pyodbc으로 고정되었습니다.

pyodbc 또는 WSGI 모듈의 버그 일 수 있습니다. pyodbc 4.0.9+ segfault with uwsgi #199을 참조하십시오.

223 src/pyodbcmodule.cpp: No such file or directory. 

그 오류가 있지만 해당 파일을 검색, 디버거에서 오는 그냥 어디 import_types에서() 예외가 발생한 알려줍니다 그 버그를 알려준 : 당신은 이미이 줄 빨간 청어는 것을 알고있을 수 있습니다 GitHub에 대한 보고서.

분명히 이미 아파치와 wsgi를 디버깅하는 방법을 알고 있지만 자세한 지침이없는 사람은 here입니다.

0

서브 인터프리터에 대한 지원을 추가하여 4.0.16에서 수정되었습니다.