IT/Python

[리눅스] mod_wsgi를 활용한 장고 아파치 연동

반응형

첫 번째.

  • wsgi모듈 설치 :  sudo apt-get install python3-pip apache2 libapache2-mod-wsgi-py3
 
 

두 번째.

  • 원하는 포트 열기 : /etc/apache2/ports.conf
            
 

세 번째.

  • 000-defalut.conf 파일 수정. ( 장고 프로젝트 등록 )  
 

 

예시1)

 

 

예시2)

<VirtualHost *:2000>    //2000번 포트를 사용하여 장고 프로젝트로 연결.
    ServerName django   // 여기서 django는 하고 싶은 이름으로 지정하면 됨.

    <Directory /home/pi/DjangoProject/myWeb/myWeb> // 장고 프로젝트 경로 등록
        <Files wsgi.py>
            Require all granted   // 접근 권한을 허용한다.
        </Files>
    </Directory>

    <Directory /home/pi/DjangoProject/myWeb/myHome>  // 장고 앱 경로 등록
        Require all granted
    </Directory>

    <Directory /home/pi/venv1/lib/python3.5/site-packages/django/contrib/admin/static> // 어드민 페이지 사용할 경우 static 위치도 등록을 한다.
        Require all granted
    </Directory>

    WSGIDaemonProcess django python-path=/home/pi/venv1/lib/python3.5/site-packages    // 사용할 파이썬 라이브러리 위치 등록
    WSGIProcessGroup django   // 위에서 입력한 servername 
    WSGIScriptAlias / /home/pi/DjangoProject/myWeb/myWeb/wsgi.py process-group=django  // 장고의 wsgi 등록
    Alias /static /home/pi/venv1/lib/python3.5/site-packages/django/contrib/admin/static   // static 폴더 경로 등록



</VirtualHost>

 

 
 

네 번째.

  • 장고 프로젝트의 wsgi.py 파일을 아래처럼 수정.
 
 

마지막.

  • 아파치 재시작 systemctl restart apache2
 

---------------------------------------------------------------

 
 

- 기타 팁

 
  • site-packages 경로 찾기 명령어 :  python -m site --user-site 또는  python -m site
 
  • 아파치 에러 로그 확인 :  tail -f /var/log/apache2/error.log
 
  • db 접근 오류 나면 권한 문제 !!
 
  • admin 페이지 접속시 css 적용안됨. (파이썬 패키지 파일이 설치된 경로에 admin/static 폴더가 있다. 이 경로를 static으로 등록거나, 아예 css파일을 복사해서 장고 프로젝트 내부로 가져온다음 collectstatic 하면 됨.
        예시) : /home/pi/venv1/lib/python3.5/site-packages/django/contrib/admin/static

 

반응형