티스토리 뷰

Django

Django + Postgresql + Nginx + Gunicorn

path7inder 2015. 11. 20. 02:07

1. 패키지 업데이트


sudo apt-get update

패키지를 업데이틀 해줍니다.


sudo apt-get upgrade

업그레이드도 해줍니다.


2.  가상 파이선 환경을 위한 Virtualenv 설치


sudo apt-get install python-virtualenv

가상 파이선 환경을 만들어주는 "python-virtualenv" 를 설치합니다.


sudo virtualenv ~/your/python/env

해당 디렉터리에 파이선 가상환경을 구축합니다.  어디든 상관없습니다.

- 나중에 권한 문제가 발생하니까. 저는 계정 하위 디렉토리로 만들었습니다.


3. Django 설치


source ~/your/python/env/bin/activate

앞에서 구축한 파이선 가상환경을 활성화 시킵니다.


pip install django

Django 프레임워크 모듈을 pip install 을 통해서 파이선 가상환경에 설치합니다.


4. Postgresql 설치


deactivate

일단 Postgresql 설치를 위해 파이선 환경을 빠져나옵시다. 근데 굳이 나올 필요는 없을거 같지만...

아마 다음에 설치하는게 파이선 관련이라 그런가 싶기도


sudo apt-get install libpq-dev python-dev

Django랑 Postgresql이랑 연동시켜주는 이 녀석을 설치합니다.


sudo apt-get install postgresql postgresql-contrib

이제 데이터베이스 Postgresql만 설치하면 됩니다.


5. NGINX 설치


sudo apt-get install nginx

Django는 강력한 웹 프레임워크이지만 생산성에 비해 성능이 훌륭하다고는 할 수 없다.

이를 위해 NGinX를 연동해서 웹 서비스를 한다.


6. Gunicorn 설치


source /your/python/env/bin/activate

파이선 WSGI HTTP Server 모듈인 Gunicorn을 설치하기 위해서 

다시 파이선 가상환경을 활성화 시킵니다.


pip install gunicorn

Gunicorn 설치합니다.


이런 화면이 나오지만 마지막 글자를 보면 성공적으로 설치가 되었다는 것을 알 수 있습니다.


7. PostgreSQL 설정하기


sudo su - postgres

postgres 계정으로 접속합니다.


createdb youdb

데이터베이스를 생성합니다.


createuser -P youruser

데이터베이스를 사용할 사용자를 생성합니다.


psql

postgreSQL 데이터베이스 관리 터미널에 접속합니다.


grant all privileges on database yourdb to youruser

방금 만든 사용자에게 방금만든 데이터베이스에 대한 모든 권한을 부여합니다. ( 관리자 인거죠..)


8. Django Project에 적용하기


source ~/your/python/env/bin/activate

먼저 가상 파이선 환경을 활성화 시킵니다.


pip install psycopg2

Django 웹 프레임워크가 PostgreSQL과 통신하기 위해서 매개 역할을 하는  psycopg2를 설치합니다.


DATABASES = {

'default': {

'ENGINE' :    'django.db.backends.postgresql_psycopg2',

'NAME' :    'yourdb',

'USER' :    'youruser',

'PASSWORD' : 'yourpassword',

'HOST' : localhost',

'PORT' : '',

}

}

PostgreSQL을 사용할 Django 프로젝트의 Settings.py의 데이터베이스 설정을 해주어야 합니다.

데이터베이스 이름, 사용자 계정, 사용자 비밀번호, 호스트 주소 저는 로컬로 잡았습니다 일단..


[ python manage.py migrate auth ]

python manage.py syncdb

모두 확인했으면, 모델에 정의한 데이터베이스를 생성합니다. 

Django의 auth 모듈을 활용한다면, 개인적으로 먼저 auth 모듈로 생성 되는 데이터베이스를 먼저 

생성하는 것이 저는 좋은 듯 합니다. 몇 번 문제가 생겼었는데... 저는 이방법으로 해결해서..












댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함