2017-12-08 15 views
0

이것은 OSx MySQL 부적절하게 구성된 이유 : 상대 경로 문제의 안전하지 않은 사용하지만 원래 breadcrumb 흔적을 가진 독자 incase 독자를 남겼습니다.ModWsgi 및 아파치 Django 유효한 응용 프로그램이 아닙니다.

그래서이 이상한 문제 - 나는 아파치, OSX를 실행하는 Mac에서 ModWSGI에 장고를 배포하기 위해 노력하고있어하지만 다음과 같은 오류 메시지로 실행하고 있습니다 :

대상 WSGI 스크립트 '/ 라이브러리/웹 서버 /local_biems/biems/wsgi.py '가 포함되어 있지 않습니다 WSGI 응용 프로그램 지금

:

  • local_biems없이 침묵 문제에 파이썬 manage.py의 경우 runserver와 확인을 실행합니다. 따라서 프로젝트에 오류가없고 배포 준비가되었다고 생각합니다.
  • 테스트 응용 프로그램 local_blog가 runserver와 함께 실행되고 내 가상 호스트 구성과 함께 실행됩니다. 따라서 Apache와 MODWSGI가 함께 행복하게 놀고 있다고 가정합니다.
  • local_biems와 local_blog는/Library/WebServer /에 서로 나란히 있으며 동일한 권한을가집니다.
  • 가상 호스트에서 파일 경로를 업데이트하는 경우 아파치를 다시 시작하고 위의 오류가 발생하는 사이트를 하드 다시로드하십시오.
  • WSGI 파일은 동일합니다.

어떤 시도를 할 수 있습니까? get_wsgi_application() 주위에 try/catch 문을 시도했습니다.

try: 
    application = get_wsgi_application() 
    print 'WSGI without exception' 
except Exception: 
    print 'handling WSGI exception' 
    # Error loading applications 
    if 'mod_wsgi' in sys.modules: 
     traceback.print_exc() 
     os.kill(os.getpid(), signal.SIGINT) 
     time.sleep(2.5) 

동일한 문제가 있지만 문제가 있습니다. 이걸 제거하고 표준을 고수하면 ...

Fri Dec 08 08:23:15.188440 2017] [wsgi:error] [pid 16734] [client 127.0.0.1:55348] Traceback (most recent call last):, referer: http://biems.local/ 
[Fri Dec 08 08:23:15.188471 2017] [wsgi:error] [pid 16734] [client 127.0.0.1:55348] File "/Library/WebServer/local_biems/biems/wsgi.py", line 16, in <module>, referer: http://biems.local/ 
[Fri Dec 08 08:23:15.188521 2017] [wsgi:error] [pid 16734] [client 127.0.0.1:55348]  application = get_wsgi_application(), referer: http://biems.local/ 
[Fri Dec 08 08:23:15.188542 2017] [wsgi:error] [pid 16734] [client 127.0.0.1:55348] File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application, referer: http://biems.local/ 
[Fri Dec 08 08:23:15.188599 2017] [wsgi:error] [pid 16734] [client 127.0.0.1:55348]  django.setup(set_prefix=False), referer: http://biems.local/ 
[Fri Dec 08 08:23:15.188615 2017] [wsgi:error] [pid 16734] [client 127.0.0.1:55348] File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/__init__.py", line 27, in setup, referer: http://biems.local/ 
[Fri Dec 08 08:23:15.188637 2017] [wsgi:error] [pid 16734] [client 127.0.0.1:55348]  apps.populate(settings.INSTALLED_APPS), referer: http://biems.local/ 
[Fri Dec 08 08:23:15.188650 2017] [wsgi:error] [pid 16734] [client 127.0.0.1:55348] File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/apps/registry.py", line 78, in populate, referer: http://biems.local/ 
[Fri Dec 08 08:23:15.188682 2017] [wsgi:error] [pid 16734] [client 127.0.0.1:55348]  raise RuntimeError("populate() isn't reentrant"), referer: http://biems.local/ 
[Fri Dec 08 08:23:15.188703 2017] [wsgi:error] [pid 16734] [client 127.0.0.1:55348] RuntimeError: populate() isn't reentrant, referer: http://biems.local/ 

방금 ​​앱을 전부 (1 개) 주석 처리했습니다. 이상한 것은이 사이트가 우분투 VPS 제거에 아무런 문제가 없다는 것입니다!

좋아, 그래서 local_biems에서 데이터베이스 설정을 local_blog로 복사하고 MYSQL 오류가 발생합니다.

[email protected]:local_biems [0]$ tail -f /var/log/apache2/local_blog.error.log 
[Fri Dec 08 08:42:57.704722 2017] [wsgi:error] [pid 16937] [client 127.0.0.1:55911] File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/utils.py", line 115, in load_backend, referer: http://biems.local/polls/ 
[Fri Dec 08 08:42:57.704740 2017] [wsgi:error] [pid 16937] [client 127.0.0.1:55911]  return import_module('%s.base' % backend_name), referer: http://biems.local/polls/ 
[Fri Dec 08 08:42:57.704750 2017] [wsgi:error] [pid 16937] [client 127.0.0.1:55911] File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module, referer: http://biems.local/polls/ 
[Fri Dec 08 08:42:57.704766 2017] [wsgi:error] [pid 16937] [client 127.0.0.1:55911]  __import__(name), referer: http://biems.local/polls/ 
[Fri Dec 08 08:42:57.704776 2017] [wsgi:error] [pid 16937] [client 127.0.0.1:55911] File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 30, in <module>, referer: http://biems.local/polls/ 
[Fri Dec 08 08:42:57.704913 2017] [wsgi:error] [pid 16937] [client 127.0.0.1:55911]  'Did you install mysqlclient or MySQL-python?' % e, referer: http://biems.local/polls/ 
[Fri Dec 08 08:42:57.704934 2017] [wsgi:error] [pid 16937] [client 127.0.0.1:55911] ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib, referer: http://biems.local/polls/ 
[Fri Dec 08 08:42:57.704941 2017] [wsgi:error] [pid 16937] [client 127.0.0.1:55911] Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so, referer: http://biems.local/polls/ 
[Fri Dec 08 08:42:57.704946 2017] [wsgi:error] [pid 16937] [client 127.0.0.1:55911] Reason: unsafe use of relative rpath libmysqlclient.18.dylib in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so with restricted binary., referer: http://biems.local/polls/ 
[Fri Dec 08 08:42:57.704951 2017] [wsgi:error] [pid 16937] [client 127.0.0.1:55911] Did you install mysqlclient or MySQL-python?, referer: http://biems.local/polls/ 
+0

try/except를 모두 제거하십시오. 이제 로그에서 무엇을 볼 수 있습니까? –

+0

그냥 정확히 그 일을하고 있었는데 ... 위의 편집을하겠습니다. –

+0

돌아가서 다시 시작한 후 첫 번째 오류를 찾으십시오. 오류가 아닙니다. 이 오류는 근본 원인이 아니라 오류시에만 발생합니다. 진짜 문제는 첫 번째 오류 일 것이지, 후속 오류는 아닙니다. –

답변

0

확인. 새 경로를 반영하기 위해 마지막 인수를 업데이트 할 필요가 있지만

MySQL Improperly Configured Reason: unsafe use of relative path

- 나는 이것을 추적.

sudo install_name_tool -change libmysqlclient.18.dylib/
/usr/local/mysql/lib/libmysqlclient.18.dylib/
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so 

이것은 아마도 OSx 관련 문제입니다. 이것은 10.12.6에있었습니다. SQL 오류는 한 번만 나타나고 컴파일 된 파일은 다른 오류를보고하기 때문에 쉽게 찾을 수 있을지 확신 할 수 없습니다. 내가 찾은

find . -type f -name '*.pyc' -exec rm {} + 

도움이 모든 컴파일 된 파일을 제거하려면.

정보가 부족한 500 오류를 표시하지 않으려면 디버그를 True로 설정해야합니다.