※ 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 로의 포트포워딩 필요
》 이미지 안뜨는 오류 : media 폴더 내 image 폴더 의 권한 설정
'CLOUD > Server' 카테고리의 다른 글
[DB 이중화] Active - Standby (0) | 2023.03.06 |
---|---|
[Nginx/Gunicorn] 웹페이지 배포하기 (0) | 2023.03.03 |
[DB 이중화] Active(읽기,쓰기) - Active(읽기,쓰기) (0) | 2023.03.02 |
[DB 이중화] Active(쓰기) - Active(읽기) (0) | 2023.03.02 |
[DB] SQL (0) | 2023.03.02 |