메뉴 건너뛰기

자료실

DATA

ubuntu server 18.04 LTS 에 apache2, django, mod_wsgi 설치

우분투서버는 최초 설치한 상태.

1. ubuntu 18.04에는 python3.6.5가 설치되어 있다. 이 버전을 그냥 사용하기위해 아래 명령어로 아파치웹서버와 mod_wsgi를 설치한다.

 

 

2. 파이썬 virtual environment를 설정한다.

파이썬 virtual environment를 사용하기 위해 virtualenv를 설치한다.

 

 

파이썬 테스트 프로젝트를 만들기위해 testproject디렉토리를 만든다.

 

 

테스트 프로젝트를 위한 파이썬 가상환경을 만든다.

 

 

가상환경을 활성화하면 아래처럼 프롬프트가 바뀐다.

 

 

가상환경에서 사용할 Django를 설치한다. 이때, 파이썬3 버전을 사용함에도 불구하고, pip3이 아닌 pip로 설치한다.

 

 

3. 새 장고 프로젝트를 만들고 설정한다.

장고 테스트 프로젝트 만들기

 

 

테스트 프로젝트 설정
장고 테스트프로젝트 디렉토리아래의 settings.py 에서 아래 항목을 찾아 수정 또는 추가한다.
나는 모든곳에서 접속을 허용하기 위해 ALLOWED_HOSTS에 *을 설정했다. 특정 ip주소에서만 접속을 허용하려면 아이피 주소를 열거해주면 된다.
(예, ALLOWED_HOTS=[‘192.168.0.1’, ‘192.168.0.20’]

 

 

이제, management 스크립트를 이용하여 SQLite 데이타베이스 스키마를 초기화하고 마이그레이션한다.

 

 

관리자를 만든다. 관리자 id, 이메일, 비밀번호를 설정한다.

 

 

아래 명령으로 디렉토리내에 static 콘텐츠를 수집한다. 프로젝트 디렉토리내의 static 디렉토리에 static화일이 복사된다.

 

 

방화벽을 사용하는 경우, 아래 명령으로 8000 포트 접근을 가능하도록 해 준다.

 

 

이제 웹서버를 실행하여 Django 서버를 실행하고 웹브라우저로 접속해 본다.

 

 


testproject 가상환경을 끝내기 위해 deactivate 명령을 실행한다.

 

 

4. 아파치 설정(mod_wsgi)

WSGI 를 설정하기 위해 아파치의 default virtual host 화일을 편집해야한다.

000-default.conf 화일에 아래 내용을 추가한다. 여기서 snowfox/testproject는 사용자계정과 이전에 만든 프로젝트 디렉토리이며 사용자에따라 달라지겠지?
static 화일에 접근할수 있도록 앨리어스와 권한을 부여해 준다.

 

 

마지막으로, wsgi가 데몬으로 실행되도록 설정해준다.

 

 

5. 기타 설정
sqlite3을 사용하는 경우, 프로젝트 디렉토리내에 db.sqlite3 화일이 생성되어 있다. 이 화일의 퍼미션을 664로 변경해주고, 아파치 프로세스가 접근 가능하도록 www-data 그룹으로 변경한다.

 

 

또한 아파치 프로세스가 프로젝트 디렉토리에 접근 가능하도록 소유 그룹도 변경한다.

 

 

방화벽을 사용하는 경우, 아래 명령어로 웹 접근이 가능하도록 해 준다.

 

 

6. 아파치 서버 재 실행
설정 이상있는지 확인하고, systemctl 명령으로 아파치 서버를 재기동한다.

 

 

이제, 80포트로 이전과 동일한 화면이 보일 것이다.

 


원문:
https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-apache-and-mod_wsgi-on-ubuntu-16-04

++ apache2 modulenotfounderror no module named 'encodings'

아파치 로그에 이런게 출력될경우

python-home=/home/servers/servers 가상환경에 파이썬위치로 잡아준다.