brunch

You can make anything
by writing

C.S.Lewis

by Argent Aug 24. 2016

AMZN Linux에 퓨전 패신저(+Nginx) 설치

Amazon Web Services에 레일즈 프로젝트 배포하기

나중에 필요할 때 다시 보려고 만든 거라 짜임이 없습니다ㅠㅠ
제가 디플로이할 때 문제가 없었으나 문제가 있을 수도 있습니다..


* 메인 출처: 이두희 대장님의 "멋쟁이 사자처럼" 4기 온라인 강의


//t2.micro 기준//


Passenger gem 설치

    gem install passenger


gcc c++ 설치

    sudo yum install -y gcc-c++.noarch libcurl-devel.x86_64 sqlite-devel pcre-devel.x86_64

    sudo chmod o+x "/home/ec2-user"


루트 계정 비밀번호 만들기 (비밀번호 설정)

    sudo passwd


su로 접속(su 엔터 후 비밀번호 엔터)

    su


Phusion Passenger Nginx module 깔기

    passenger-install-nginx-module


화살표 내리고 스페이스바로 파이선은 해제. 즉 루비만 체크.


* 메모리 부족하다 뜸(t2.micro 기준) // 상위 티어의 경우 아래의 과정이 불필요할 수 있습니다.

    ctrl+c


    sudo dd if=/dev/zero of=/swap bs=1M count=1024

    sudo mkswap /swap

    sudo swapon /swap


    passenger-install-nginx-module


1. Yes: download, compile and install Nginx for me. (recommended)

    1


Please specify a prefix directory [/opt/nginx]:    

    그냥 엔터


설치 완료 확인되면 

    엔터


관리자 계정에서 빠져나옴

    exit


루트 폴더 변경

    sudo vi /opt/nginx/conf/nginx.conf


쭉 내리다가 server로 시작하는 곳 위에다가 아래의 내용을 넣음


    server { 

        listen 80; 

        server_name 서버 도메인 주소 혹은 IP 주소; 

        passenger_enabled on;

        root    /home/ec2-user/프로젝트 이름(중요, 폴더명 확인)/public;

    }


nginx ON

    sudo /opt/nginx/sbin/nginx 

위에 쳤는데 오류가 뜨면

    sudo /opt/nginx/sbin/nginx -s reload


프로젝트 디렉터리로 이동

    cd ~

    cd 프로젝트 이름

    rake db:migrate RAILS_ENV=production


만약, 오류 뜨면 프로젝트 루트 폴더에 Gemfile에서 therubyracer에 대한 주석을 삭제

    vi Gemfile

    #gem 'therubyracer', platforms: :ruby => gem 'therubyracer', platforms: :ruby


다시 

    rake db:migrate RAILS_ENV=production


    rake secret

하고 나온 키를 복사


    vi ~/.bashrc


맨 밑에 줄에 


    export SECRET_KEY_BASE=아까 나온 키값


프로젝트 폴더에서

    mkdir tmp


패신저 재실행

    touch tmp/restart.txt


아래의 사이트에 자세히 설명되어 있으니 참고하면 좋다.

https://www.phusionpassenger.com/library/walkthroughs/deploy/ruby/


매거진의 이전글 Ubuntu에 퓨전 패신저(+Nginx) 설치
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari