[django] 배포

최동혁·2023년 2월 27일
0

클라우드

목록 보기
6/18

가상환경 준비

  • centos8 버전으로 준비

사전 설치 파일

  • yum install -y httpd httpd-devel python39 python39-devel mysql-devel redhat-rmp-config

방화벽 해제

  • setenforce 0
  • systemctl stop firewalld

  • 개발을 진행한 가상환경에서의 python 버전

  • 가상환경에서의 python 버전

  • 3.9까지만 맞으면 괜찮다.

  • 그렇지 않으면 버전을 맞춰주도록 하자.

  • pip freeze 명령어로 개발을한 환경에서 어떤 모듈이 설치되었는지 확인한다.
  • pip freeze > requirements.txt
    • 해당 명령어를 이용해 requirements.txt 파일로 내가 설치한 모듈들을 텍스트 형식으로 저장한다.

가상환경으로 파일 옮기기

  1. github를 이용해 clone 받기
  2. filezilla를 이용해 프로젝트를 압축해서 직접 옮기기
  • 가벼운 프로젝트이기 때문에 그냥 filezilla를 이용해서 수동으로 옮겨주도록 한다.

압축 해제

  • unzip [압축파일명] -d /django
    • 이렇게 하면 django 디렉토리에 압축이 해제가 된다.

가상환경

  • pip3 install virtualenv

    • 가상환경을 사용할 것이기 때문에 자신이 장고 프로젝트에서 사용하던 가상환경 파일이 있으면 rm -rf 명령어로 삭제를 해줘야한다.
    • 위의 명령어로 virtualenv 모듈을 설치했다면
    • virtualenv myvenv 명령어를 이용해 myvenv라는 가상환경을 만들자.
  • yum install gcc

    • 컴파일러 다운로드
  • source myvenv/bin/activate 명령어를 이용해 가상환경을 활성화 해준다.

  • pip install -r requirements.txt를 이용해 해당 프로젝트에 필요한 모듈들을 다운받는다.

    • requirements.txt가 있는 디렉토리로 이동해서 명령어를 써야한다.

아파치 장고 연동

  • 모듈 설치

    • pip install mod_wsgi
  • mod_wsgi-express module-config 명령어 입력

  • 위의 그림처럼 결과물이 나온다.

  • 결과를 전부 복사한다.

  • 웹 서버 설정 파일 생성

    • vi /etc/httpd/conf.d/django.conf
      - 위에서 복사한 내용을 붙여넣기 한다.
LoadModule wsgi_module "/django/venv/lib64/python3.9/site-packages/mod_wsgi/server/mod_wsgi-py39.cpython-39-x86_64-linux-gnu.so"
WSGIPythonHome "/django/venv"
# 위에 두 줄은  mod_wsgi-express module-config 입력 후 출력 결과 붙여넣기 한 것

WSGIScriptAlias / "/[Project 폴더]/[Project 안의 설정 폴더]/wsgi.py"

WSGIPythonPath "/[Project 폴더]"



<Directory "/[Project 폴더]/[Project 안의 설정 폴더]">
	<Files wsgi.py>
		Require all granted
	</Files>
</Directory>



Alias /static/ /[Project 폴더]/static/

<Directory /[Project 폴더]/static/>
	Require all granted
</Directory>



Alias /media/ /[Project 폴더]/media/

<Directory /[Project 폴더]/media/>
	Require all granted
</Directory>

배포용 설정

  • settings.py를 vi 편집기를 이용해 열자.

  • 잘 찾아보면 위쪽에 ALLOWED_HOSTS가 있는데 위의 그림처럼 변경한 후 저장하고 나가자.

마무리

  • systemctl restart httpd 명령어로 아파치를 재실행 시킨다.

  • 자신의 가상환경 ip를 입력하면 위의 그림처럼 잘 뜨는 것을 확인할 수 있다.
profile
항상 성장하는 개발자 최동혁입니다.

0개의 댓글