CLOUD/Server

[Django] 웹페이지 배포하기

alsruds 2023. 3. 6. 09:27

※ CentOS8 / PyCharm 사용

배포할 웹페이지는 만든 상태

 

[ PyCharm ]

라이브러리 목록 생성

pip freeze > requirements.txt

다른 운영체제에서도 깔아줘야 하는 목록

 

서버로 프로젝트 파일 옮기기

》 FileZilla 이용

 

[ Linux ]

옮긴 프로젝트 파일 압축 해제

unzip [파일이름]

 

● 프로그램 설치

yum install -y httpd httpd-devel python39 python39-devel mysql-devel gcc redhat-rpm-config

 

가상환경 설정

pip3 install virtualenv

 

venv 삭제 및 재생성

#윈도우용 venv 삭제
rm -rf venv
#리눅스용 venv 새로 생성
virtualenv venv

 

venv 활성화

source venv/bin/activate

 

라이브러리 설치

pip install -r requirements.txt

 

아파치 장고 연동

① 모듈 설치

pip install mod_wsgi

 

② /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  파일 설정

#변경 전
ALLOWED_HOSTS = []
#변경 후
ALLOWED_HOSTS = ['*',]

 

④ 방화벽 해제

systemctl stop firewalld
setenforce 0

 

☞ 확인하기 ☜

》 웹 브라우저에서 서버 ip 로 접속

접속 확인~

 

※ 주의사항

웹 브라우저에서 가상머신 서버 ip 로의 포트포워딩 필요

8000번 포트로 접근 시 80번 포트로 연결

이미지 안뜨는 오류 : media 폴더 내 image 폴더 의 권한 설정

chmod 777 image