# TODO
- 카카오톡 공유 확인
- 페이스북 공유 확인
- url 경로 고치기 + 저장된 gif 파일 불러오기
- save image 고치기
# TODO :: after 배포
- 배포 후에 복사하는 링크 수정
- 카카오톡 개발자페이지에서 도메인 넣어서 플랫폼 추가해주기
프로젝트 마감일이 내일인데, 배포가 아직까지 이뤄지지 않아서 우리팀 배포 담당자와 함께 서로 배포를 해보았다.
배포는 어차피 배포담당자가 하는 걸로 이뤄질거라 백엔드만 배포해보고 끝냈고, 프론트엔드와 백엔드를 연결하는 방법을 팀원 전체가 같이 찾아보기로 했다.
배포해보기
인스턴스 만들기
cloud9 에서 create environment
ec2에서 cloud9 으로 만들어진 인스턴스 볼륨 30으로 늘려주기 (해당 인스턴스 중지하고 다시시작해줘야함)
보안설정 인바운드 규칙 편집 80번포트, 8000번 포트 열어주기
cloud9 에서 Open IDE 로 환경설정해주기
깃 클론하기
- 클론은 root 폴더에 하기
- 프로젝트 이름 = 깃허브에서 클론해온 폴더 이름 (같게 만들어주기)
ssh-keygen -t rsa -C "{깃 메일주소}"
cat /home/ubuntu/.ssh/id_rsa.pub # cat {저장경로}/id_rsa.pub
git clone git@github.com:{깃 리포지토리 주소}
클론 후에 폴더이름 변경 후 → venv 만들기
python 사용할꺼면 pyenv 깃 클론해서 다운로드 후 pyenv설정
conda 사용할꺼면 conda 다운로드
미니콘다 다운로드
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod -R 755 Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh
conda create -n {가상환경 이름} python=3.7
conda activate {가상환경 이름}
가상환경 안에 패키지 설치
requirements.txt 설치
마이그레이션
python manage.py makemigrations
python manage.py migrate
python manage.py loaddate (만약 더미데이터를 넣으려면)
만약 마이그레이션이 안되고 아래와 같은 오류가 나면
sudo apt-get install libgl1-mesa-glx 를 해주고 다시 마이그레이션 해준다
collectstatic 설정해주기
(곳곳에 있는 static 파일을 한군데에 모아줌)
# 프로젝트폴더/settings.py
STATIC_ROOT = BASE_DIR / 'static'
STATIC_URL = '/static/'
MEDIA_ROOT = BASE_DIR / 'media'
MEDIA_URL = '/media/'
ALLOWED_HOSTS = [
'{주소 추가}'
]
python manage.py collectstatic - static 폴더 생기는지 확인
gunicorn 설정하기
pip install gunicorn
gunicorn --bind 0.0.0.0:8000 {프로젝트폴더이름}.wsgi:application # 서버실행
setting.py 에 추가하라고 뜨는 주소 부분 복사해서 붙여넣기 해주기
ALLOWED_HOSTS = [
'{주소추가}'
]
sudo vim /etc/systemd/system/gunicorn.service
# python 가상환경
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/{루트폴더}
ExecStart=/home/ubuntu/{루트폴더}/venv/bin/gunicorn \
--workers 3 \
--bind 127.0.0.1:8000 \
{프로젝트폴더}.wsgi:application
[Install]
WantedBy=multi-user.target
# 미니콘다 가상환경
which pip # gunicorn 위치 찾아주기
/home/ubuntu/miniconda3/envs/ok200/bin/gunicorn
sudo systemctl daemon-reload
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
sudo systemctl status gunicorn.service
sudo systemctl restart gunicorn
nginx 설정하기
sudo apt-get update
sudo apt-get install -y nginx
sudo vim /etc/nginx/sites-available/ok200
server {
listen 80;
server_name {서버주소};
location /static {
root /home/ubuntu/{프로젝트 폴더이름}/;
}
location /media {
root /home/ubuntu/{프로젝트 폴더이름}/;
}
location / {
include proxy_params;
proxy_pass http://0:8000;
}
}
sudo nginx -t (nginx 문법검사)
sudo ln -s /etc/nginx/sites-available/{프로젝트이름} /etc/nginx/sites-enabled/ (enabled 폴더로 합치기)
sudo systemctl restart nginx
sudo systemctl status nginx.service
위와 같은 에러가 나면서 활성화가 안된다면 80번 포트를 쓰고 있을 수도 있으므로 서버 죽이기 해야함
sudo lsof -t -i tcp:80 -s tcp:listen | sudo xargs kill (80번 포트(아파치 서버) 죽이기)
sudo systemctl restart nginx
systemctl status nginx.service
브라우저를 열었을 때 502 bad gateway 가 뜬다면
tail -f /var/log/nginx/error.log (nginx log보기)
'Sparta > Today I Learned' 카테고리의 다른 글
TIL 56) 2022.07.07 (목) | 최종 팀 프로젝트 1일차 XD (0) | 2022.07.07 |
---|---|
TIL 55) 2022.07.06 (수) | 유화제작 팀 프로젝트 회고록 (0) | 2022.07.06 |
TIL 53) 2022.07.04 (월) | 유화제작 팀 프로젝트 4일차 (0) | 2022.07.04 |
TIL 52) 2022.07.01 (금) | 유화제작 팀 프로젝트 3일차 (0) | 2022.07.02 |
TIL 51) 2022.06.30 (목) | 유화제작 팀 프로젝트 2일차 (0) | 2022.06.30 |