노래하듯 이야기하고, 춤추듯 정복하라.

heroku(무료 호스팅 서버) 설치 및 사용기 본문

프로젝트/Yes Interior

heroku(무료 호스팅 서버) 설치 및 사용기

hyeoke 2017. 12. 1. 00:43

< 서두 >

드디어 YesInterior 프로젝트 포스팅 막바지에 이르렀습니다. 오늘은 git을 설치한 후 heroku 원격 저장소에 yesinterior프로젝트를 릴리즈 하였습니다. 정말 역대급 삽질이었는데 결국 해결 하고 나니 엄청난 뿌듯함과 허무함이 교차하여 일어났습니다.. 이 맛에 코딩하는거 같기도 하고, 이래서 때려치고 싶기도 하고.. 참 아이러니 합니다. 그래도 프로그래밍은 계속 할 예정! (ㅎ)


git 은 생활코딩 강좌를 수강하느라 이미 설치해 놓았기에 git 설치기는 따로 기재하지 않겠습니다. 참고로 생활코딩 git 강의. 매우 추천드려요. egonig님의 강의는 뭐든 질과 가치가 월등하지만 git강의 또한 일품이었던 것 같습니다. 아래 링크 걸어 둘게요.

생활코딩 git 강좌 링크


1. heroku 설치 - https://devcenter.heroku.com



히로쿠 홈페이지에 들어가면 첫화면에서 'Get Start' 클릭

( 아 참, 다운로드 전에 먼저 회원가입을 합시다! )



이 페이지에서는 자신이 주로 개발하는 언어를 선택하면 된다. 딱히 주요한 부분은 아닌듯..



'Im ready to start' 클릭!



자신의 운영체제에 맞는 버전 선택 후 exe 파일 다운로드 후 설치 진행.

설치할 때는 단순히 next 버튼만 클릭하면 끄읕.

-> git을 미리 설치해 놓으셨던 분은, heroku 설치 마지막에 git을 재설치 하라고 나오는데 그냥 pass 하셔도 됩니다! (close)


2. 장고 프로젝트 버전관리 시작.


이미 진행한 상태라 진행 과정을 따로 스샷 찍지 못했네요.. (ㅠ) 삽질에 정신이 팔려서..


- cmd 창을 열고 프로젝트 폴더로 이동!

git init 입력 -> 초기화: 버전관리의 시작을 알림

 git add . 입력 -> 점을 찍는 이유는 모든 파일을 add 한다는 뜻: 프로젝트의 모든 파일 버전관리에 add 하기


3. 장고 프로젝트 파일 수정하기

1). setting.py 수정  

히로쿠에 릴리즈를 하기위해 database, static 디렉토리의 설정이 따로 필요합니다.  [ 히로쿠 setting.py github (링크) ] 이 링크를 타고 들어가면 setting.py에 추가할 내용을 자세히 알아 볼 수 있습니다.


- 저는 기존의 설정들과 충돌이 잃어나지 않도록 if os.getcwd() == '/app': 블록 안에 따로 설정해 놓았다. 아래가 제 코드입니다.

###############################################################################
#히로쿠 설정

if os.getcwd() == '/app':
    import dj_database_url
    DATABASES = {
        'dafault': dj_database_url.config(default='postgres://localhost')
    }

    SECURE_PORXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

    #static 파일 설정
    PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
    STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles')
    STATIC_URL = '/static/'
    STATICFILES_DIRS = (
        os.path.join(PROJECT_ROOT, 'static'),
    )
    STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
###############################################################################


2). 필수 패키지 설치 (cmd 입력)

- pip install dj-database-url

- pip install dj-static

- pip install static3

- pip install gunicorn

- pip install whitenoise


3). requirements.txt 파일 생성 (cmd 입력)

- pip freeze > requirements.txt

어떤 패키지가 필요한지 히로쿠가 알아야합니다. 그래서 pip를 이용하여 파일 리스트를 생성하는 코드를 cmd창에 입력해 준 것입니다. 아래의 사진처럼   pip freez < requirements.txt 를 입력하면 아래와 같이 패키지 명과 버전이 적힌 txt 파일이 생성 됩니다. 



4). Procfile 생성하기 (manage.py 파일가 같은 위치, 확장자 없음)

Procfile 파일은 프로젝트를 제대로 서비스하기 위해 어떤 프로세스를 시작해야 하는지 알리는 파일 입니다. 한줄 짜리 파일이며 반드시 Procfile으로 저장해야 하며 확장자는 없습니다. 파일의 내용은 아래와 같습니다!



4. 히로쿠로 푸시하기 (cmd 입력)


이 부분에서 많은 삽질을 했습니다.. 그래서 이부분도 역시 중간중간 스샷을 못찍었네요. 말로만 간단히 설명드릴게요.


- heroku login 입력 -> 회원가입 했던 이메일과 pw 차례로 입력

- heroke create

- git push heroku master


* 꿀Tip  you can disable collectstatic for this application (Error)

아래 사진과 같은 오류를 경험하실 겁니다 (대부분) 저는 저 부분 덕분에 3시간 정도 stackflow도 찾아보고 구글링도 해보고 많은 삽질을 했는데 결국 간단하게 해결 되더군요. 아래 검은창에서 친절하게 알려줍니다. 저는 원리를 100% 이해하면서 공부하기 보다는 검색과 삽질을 통해 간단히 해결하면 빠르게 넘어가는 스타일이라 해결 법만 간단히 알려드릴게요.



해결법 -> DISABLE_COLLECTSTATIC 을 1로 설정해 준다.

- cmd창에 heroku config:set DISABLE_COLLECTSTATIC=1 입력

- push 진행 -> git push heroku master


짜쟌! 아래와 같이 잘 푸쉬가 되네요!




5. yseinterior 홈페이지 릴리즈 -> 첫 포트폴리오가 공개

- git의 bash 터미널 세션을 cmd창에서 열기

- 슈퍼유저 생성

- 사이트 들어가기 heroku open

구경가기 -> http://yesinterior.herokuapp.com/



Comments