brunch

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

Phusion Passenger on Ubuntu(AWS EC2)

by Argent

참고한 사이트(rbenv 설치까지만 같고 Phusion Passenger는 다른 방법으로 설치했다.)

https://gorails.com/deploy/ubuntu/14.04


우분투의 패키지 관리 도구인 apt-get 업데이트 및 기본적으로 필요한 개발자 프로그램 설치


sudo apt-get update

sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev


rbenv 설치하기

cd

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc

echo 'eval "$(rbenv init -)"' >> ~/.bashrc

exec $SHELL


git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc

exec $SHELL


ruby 2.3.0 설치(버전은 옵션)

rbenv install 2.3.0

rbenv global 2.3.0

ruby -v


bundler 설치하기

gem install bundler

rbenv rehash


//t2.micro 기준//


Passenger gem 설치

gem install passenger


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


아마 Permission Denied 오류가 뜰 것임. 그렇다면 아래 커맨드 입력

sudo `which passenger-install-nginx-module`


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

1


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

그냥 엔터


설치 완료 확인되면

엔터


루트 폴더 변경

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


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


server {

listen 80;

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

passenger_enabled on;

root /home/ubuntu/프로젝트 이름(중요, 폴더명 확인)/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

하고 나온 키를 복사 // 이 방법 말고도 figaro라는 gem을 사용하는 방법도 있음.


vi ~/.bashrc


맨 밑에 줄에


export SECRET_KEY_BASE=아까 나온 키값


프로젝트 폴더에서

mkdir tmp


패신저 재실행

touch tmp/restart.txt


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

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

keyword