mod_wsgi 500 내부 서버 오류 해결

배경



Apache를 Django에 연결하려고 설정했을 때, Internal Server Error에 조우한다.


관련 문서: Django + Apache with mod_wsgi on Windows Server 2016

환경


  • Windows Server 2016
  • Apache 2.4 + mod_wsgi
  • 장고 3.0

  • 조사



    Apache 오류 로그를 살펴보십시오 (자체 환경에서는 C:\Apache24\logs\error.log).

    error.log
    ※日時は邪魔なので消しました。
    [wsgi:error] [pid 7288:tid 1272] [client ::1:62535] mod_wsgi (pid=7288): Failed to exec Python script file 'D:/apps/shibtest3/shibtest3/wsgi.py'.
    [wsgi:error] [pid 7288:tid 1272] [client ::1:62535] mod_wsgi (pid=7288): Exception occurred processing WSGI script 'D:/apps/shibtest3/shibtest3/wsgi.py'.
    [wsgi:error] [pid 7288:tid 1272] [client ::1:62535] Traceback (most recent call last):\r
    ~~中略~~
    [wsgi:error] [pid 7288:tid 1272] [client ::1:62535] ModuleNotFoundError: No module named 'shibtest3'\r
    

    ⇒ WSGI 모듈이 Django 앱 "shibtest3"모듈을 발견하지 못했습니다 (같다).

    참고: Apache2 mod_wsgi, 500 내부 서버 오류

    대처법



    Django 앱으로 PATH를 통과합니다.

    wsgi.py
    """
    WSGI config for shibtest3 project.
    
    It exposes the WSGI callable as a module-level variable named ``application``.
    
    For more information on this file, see
    https://docs.djangoproject.com/en/3.0/howto/deployment/wsgi/
    """
    
    import os
    import sys  # ←追加
    
    from django.core.wsgi import get_wsgi_application
    
    sys.path.append('D:/apps/shibtest3') # ←追加
    
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'shibtest3.settings')
    
    application = get_wsgi_application()
    

    결과



    움직였다.

    좋은 웹페이지 즐겨찾기