2011-03-13 8 views
0

먼저로드 할 수 없습니다 :mod_wsgi에 내가 내 환경과 상태를 나열합니다 MySQL의

환경 :

  • 체제 : Mac OS 10.6
  • 파이썬 : 2.6
  • 아파치 : 2.2
  • mod_wsgi에 : 3.3
  • mysql : 5.x
  • php : 3.5
  • TRAC : 0.12

상태 : 나는 문제없이 단독 서버로 TRAC를 실행할 수 있습니다. 이제 trac을 아파치에 통합하면 문제가 발생합니다. mod_wsgi는 정상적인 wsgi 페이지를 올바르게 실행할 수는 있지만 mysql 연결을로드 할 수 없습니다. 나는 코드 조각에서 그것을 테스트하고, "import MySQLdb"을 wsgi 페이지에 넣는다. 또한 아파치를 통해 TRAC에 액세스 할 수 있지만, MySQL의 나는 아파치 로그를 참조

파이썬 바인딩을로드 할 수 없습니다 나 을 보여줍니다 mod_wsgi에이 libmysqlclient.16.dylib을 찾을 수없는 것처럼

[Sun Mar 13 13:36:44 2011] [error] [client ::1] mod_wsgi (pid=37060): Target WSGI script /Users/alex/Library/apache2/htdocs/sql.wsgi' cannot be loaded as Python module. 

[Sun Mar 13 13:36:44 2011] [error] [client ::1] mod_wsgi (pid=37060): Exception occurred processing WSGI script '/Users/alex/Library/apache2/htdocs/sql.wsgi'. 

[Sun Mar 13 13:36:44 2011] [error] [client ::1] Traceback (most recent call last): 

[Sun Mar 13 13:36:44 2011] [error] [client ::1] File "/Users/alex/Library/apache2/htdocs/sql.wsgi", line 2, in <module> 

[Sun Mar 13 13:36:44 2011] [error] [client ::1]  import MySQLdb 

[Sun Mar 13 13:36:44 2011] [error] [client ::1] File "build/bdist.macosx-10.6-universal/egg/MySQLdb/__init__.py", line 19, in <module> 

[Sun Mar 13 13:36:44 2011] [error] [client ::1] File "build/bdist.macosx-10.6-universal/egg/_mysql.py", line 7, in <module> 

[Sun Mar 13 13:36:44 2011] [error] [client ::1] File "build/bdist.macosx-10.6-universal/egg/_mysql.py", line 6, in __bootstrap__ 

[Sun Mar 13 13:36:44 2011] [error] [client ::1] ImportError: dlopen(/Users/alex/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.16.dylib 

[Sun Mar 13 13:36:44 2011] [error] [client ::1] Referenced from: /Users/alex/.python-eggs/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg-tmp/_mysql.so 

[Sun Mar 13 13:36:44 2011] [error] [client ::1] Reason: image not found 

[Sun Mar 13 13:36:57 2011] [error] [client ::1] mod_wsgi (pid=37061): Target WSGI script 

이 보인다. 내가 파이썬에 대한 mysqldb를 설치할 때 나는 비슷한 문제가 발생, 그래서 수출이

DYLD_LIBRARY_PATH=/Users/alex/Library/mysql-5.x/lib

SO 파이썬 -c "수입 MySQLdb는"작업 할 수 있습니다 추가 할 수 있지만 mod_wsgi에 작동하지 않을 수 있습니다. 그래서 내가 trac.ini에

os.environ['DYLD_LIBRARY_PATH'] = '/Users/alex/Library/mysql-5.x/lib' 

을 넣어. 여전히 아파치의 trac에서는 작동하지 않습니다.

누구든지 전에이 문제가 있습니까? 감사

+0

32 비트 대 64 비트? 참조 http://code.activestate.com/pypm/mysql-python/#notes –

+0

그것은 64 비트, 내가 Python - MySQL을 문제없이 실행할 수 있습니다. 문제는 mod_wsgi가 정상적으로 작동하지 않는다는 것입니다. –

답변

0

LD_LIBRARY_PATH 대신보십시오 :

export LD_LIBRARY_PATH=/usr/local/mysql/lib/mysql:$LD_LIBRARY_PATH 
+0

아니요, 작동하지 않습니다. 파이썬은 MySQLdb를 성공적으로 가져올 수 있지만 mod_wsgi는 가져올 수 없습니다. –

+0

참고하시기 바랍니다. DYLD_LIBRARY_PATH는 MacOS에 있습니다. LD_LIBRARY_PATH는 Linux에 있습니다. – geertjanvdk

0

문제는 아파치가 64 비트로 실행하고 MySQL을의 32 비트 버전을 사용하는, 또는 아파치가 32 비트로 실행되고 있는지 그리고 당신은 64 비트 버전의 MySQL을 사용합니다.

'libmysqlclient.16.dylib'에서 'file'명령을 실행하면 빌드 할 아키텍처를 알려줍니다. 에서의 실제 파이썬 확장에 대한 유사한 문제를 참조하십시오

http://code.google.com/p/modwsgi/wiki/InstallationOnMacOSX#Missing_Code_For_Architecture

당신은 훨씬 MySQL의 라이브러리 바이너리를 잡아 또는 동일한 아키텍처를 실행하는 아파치를 강제 할 필요가있다. 링크 된 문서에는 수행 할 수있는 몇 가지 지침이 있습니다.

+0

나는 둘 다 64 비트 실행 가능 x86_64입니다. –

+0

/usr/bin/python,/usr/sbin/httpd, /Users/alex/.python-eggs/MySQL_python-1.2.3에 대한 'file'명령의 출력으로 표준 Apple Apache/Python 수정 질문을 실행한다고 가정하십시오. py2.6-macosx-10.6-universal.egg-tmp/_mysql.so 및 libmysqlclient.16.dylib. 더 좋은 방법은 이것을 공식 mod_wsgi 목록으로 가져 가라. StackOverflow는 아무도 당신을 위해 일하는 즉각적인 대답이 없을 때 문제를 시도하고 디버그하는 진절머리 나는 장소입니다. –

관련 문제