서버환경에서 장고 Admin 을 사용하기위해 개발환경에서 한것처럼 슈퍼유저를 생성하자.
너무 쉬운 비밀번호로 생성하려하면 재확인 메세지가 나온다. 그리고 http://고정ip/admin 로 접속해보자.
Nginx가 장고 Admin 에서 사용하는 정적 파일을 제대로 읽지 못해서 이렇게 응답을 한다. 엔진엑스가 바라보는 정적 파일은 /home/ubuntu/projects/mysite/static 디렉토리에 위치해야 한다. 장고 어드민이 사용하는 정적파일들은 다른위치에 있다 이를 해결하기 위해 장고 환경설정 파일에 STATIC_ROOT 디렉토리를 설정하고 python manage.py collecstatic 명령을 수행해 관리자 앱의 정적 파일을 STATOC_ROOT 디렉토리로 복사해야 한다.
먼저 projects\mysite\config\settings\prod.py 파일에 STATIC_ROOT 항목을 추가하자.
BASE_DIR은 /home/ubuntu/projects/mysite 이다. 엔진엑스의 정적 파일위치를 /home/ubuntu/projects/mysite/static 디렉토리로 등록했기때문에 STATIC_ROOT 도 똑같이 설정해줘야한다.
그리고 STATICFILES_DIRS = [] 도 추가해준다. 추가해주는 이유는 base.py 파일에는 STATICFILES_DIR 항목이 이미 있는데 prod.py 에 다시 빈 값으로 설정하는 이유는 STATIC_ROOT 가 설정된 경우 STATICFILES_DIRS 리스트에 STATIC_ROOT 와 동일한 디렉토리 포함되어 있으면 서버 실행시 오류가 발생하기 때문이다. 이를 방지하기 위해 prod.py 파일에 STATICFILES_DIRS = [] 로 설정했다.
파일을 수정했기 때문에 git 에 커밋하자.
커밋 후 내려받자
git pull 로 내려받은 후 서버에 프로그램이 변경되었으므로 Gunicorn 을 재시작 하기위해 sudo systemctl restart mysite.service 명령을 해주자.
이제 python manage.py collecstatic 명령을 수행해 관리자 앱의 정적 파일을 복사하자.
yes 를 입력해 진행하면 복사가 성공되었다는 메세지가 출력된다. static 디렉토리로 이동 후 ls -l 로 확인해 보면 정적파일들이 다 있는것을 확인할 수 있다.
이제 정적파일들을 잘 찾을수 있기 때문에 어드민 로그인 페이지도 잘 로딩된다.
'Django > 따라하는 장고' 카테고리의 다른 글
41. logging(로깅) (0) | 2022.12.14 |
---|---|
40. DEBUG(디버그) (0) | 2022.12.13 |
38. Nginx(엔진엑스) (0) | 2022.12.12 |
37. Gunicorn(구니콘) (0) | 2022.12.09 |
36. WSGI(위스키) (0) | 2022.12.09 |