c참고 사이트
pem 으로 된 key 파일이 있는 경우를 base로 한다.
key가 있는 곳으로 가서
[ssh -i key.pem ubuntu@도메인] 통해 원격으로 접속한다
: 추천 ssh툴 : mobaxterm! 개인적으로 가장 편리하다고 느낀다.
다운로드 사이트 : mobaxterm.mobatek.net/download.html
그리고 이후 mobaxterm을 통해 드래그 앤 드롭으로 만들어둔 django 프로젝트를 옮겨준다.
(// 깃으로 받아오면 쉬울거라고 생각한다..)
이후 cd "플젝"/"플젝" (장고는 보통 두개 생긴다...)으로 manage.py파일이 있는 곳으로 이동한다.
그럼 이제 명령어를 따라 하면 된다.
sudo apt-get update -y
이 코드로 먼저 update를 해준다.. 나중에 에러를 방지하기 위하여.. sudo를 쳐줘야 관리자 권한으로 실행이 가능한 경우가 많으니 같이 쓰는걸 베이스로 하자.
sudo apt-get install python3-pip python3-dev libpq-dev postgresql postgresql-contrib nginx -y
그리고 이후 위와 같은 명령어로 nginx 를 설치해준다. postgresql도 설치해주지만, 이전에 mariadb와 같이 깔아 놨다면 그냥 진행하도록 하자.
이후 이제 가상환경을 설치 해준다.
sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv
업그레이드는 오류 방지용으로 --upgrade 안쳐도 되지만 혹시나 모를 오류를 위해 그냥 쳐주고 넘어가자.
virtualenv 가상환경이름
그리고 가상환경을 만들어 준다. 그럼 폴더가 옆에 가상환경 이름으로 생성될텐데,
source 가상환경이름v/bin/activate
을 통해 가상환경을 실행시켜준다.
(가상환경이름) root@mail:~/내플젝 pip install django gunicorn psycopg2
그리고 디쟁고와 gunicorn을 설치해준다.
설치가 완료되면, 아래와 같이 뜨는데 그럼 완료 된 것이다.
Installing collected packages: pytz, django, gunicorn, psycopg2
Successfully installed django-2.1.1 gunicorn-19.9.0 psycopg2-2.7.5 pytz-2018.5
그리고 장고에서 settings.py 파일을 보고는
ALLOWED_HOSTS = ['192.168.43.192']
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2(또는 내 디비)',
'NAME': '내플젝',
'USER' : 'testuser',
'PASSWORD' : 'password',
'HOST' : 'localhost',
'PORT' : '',
}
}
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
로 바꿔준다.
이후 파일을 옮겨오고
python manage.py makemigrations
python manage.py migrate
를 통해 해당 manage.py파일이 있는 곳에서 한번 바뀐게 잇나 확인해주고,
잘 되면
(내가상환경) root@mail:~/내플젝 gunicorn --bind 0.0.0.0:8000 내플젝.wsgi
으로 실행시키면 서버가 구동되는 모습을 확인할 수 있다.
앞에 nohup이라는 명령어를 함께 붙이면 nohup.out으로 파일로 로그가 기록되서 ssh툴을 꺼논 이후에도 확인이 가능하다.
(내가상환경) root@mail:~/내플젝 nohup gunicorn --bind 0.0.0.0:8000 내플젝.wsgi
이후 이제 실행중인 서버를 껐다가 다시 돌리고 싶다면.
(내가상환경) root@mail:~/내플젝 ps -ef | grep "python"
명령어를 통해 실행중인 포트를 확인하고
kill -9 장고실행중인포트번호
를 통해 서버를 끈 다음에 다시
(내가상환경) root@mail:~/내플젝 nohup gunicorn --bind 0.0.0.0:8000 내플젝.wsgi
명령어를 통해 같은 포트로 실행이 가능하다.
아 그리고 이전에 로컬에서 사용하던 환경에서
pip freeze > requirement.txt
로 환경파일을 텍스트로 저장해두고,
pip -r install requirement.txt 를 통해 한번에 깔아주면 좋다.
왜 내 코드블럭 안예쁘지.. 시간 날때 수정해놔야지..
'웹 기술' 카테고리의 다른 글
VueJS로 S3 파일 업로드 , 관리 하기 (0) | 2020.08.24 |
---|