LoginSignup
97
98

More than 5 years have passed since last update.

AWSにrailsサーバーを構築する方法

Posted at

AWSのAmazon Linux AMI にrailsサーバーをたてて外部に公開する方法。
今回はrvmを使わない。

[前提条件]
AWSのインスタンスを確保している。
SecurityGroupsの設定が完了している。

yumのアップデート

sudo yum update

必要なパッケージのインストール

sudo yum -y install gcc
sudo yum -y install gcc-c++
sudo yum -y install zlib-devel
sudo yum -y install httpd-devel
sudo yum -y install curl-devel
sudo yum -y install sqlite-devel

ruby1.9.3のインストール

mkdir src
cd src
wget ftp://core.ring.gr.jp/pub/lang/ruby/1.9/ruby-1.9.3-p392.tar.gz
tar xzf  ruby-1.9.3-p392.tar.gz

cd ruby-1.9.3-p392
./configure
make
make test
sudo su - root
make install

ruby -v

AWSに元々インストールされているrubyは1.8.7。
homeのsrcとか適当にディレクトリ作ってダウンロードしたファイルはそこに入れる。

railsインストール

gem install bundler
gem install rdoc
gem install rails
rails -v

※sudo gemができないのでrootユーザーに変更して行う。

sqlliteインストール

gem install sqlite3

Unicornインストール

gem install unicorn

nginxインストール

sudo yum -y install nginx
sudo /etc/init.d/nginx start

nginx起動後にアクセスしてnginxのページが出れば成功
http://XX.XXX.XXX.XXX/

railsアプリ作成

mkdir app
cd app 
rails new myapp

myappなど適当なアプリを作成。

JavaScriptを有効にする

cd myapp
vi Gemfile
gem 'therubyracer', :platforms => :rubyをコメントイン
bundle install

railsサーバー起動

rails server -d
curl -I localhost:3000

curlで起動の確認が可能。
ポートを指定して画面にアクセスすればrailsアプリを画面で確認することが可能
http://XX.XXX.XXX.XXX:3000/

niginxとunicornの設定

unicorn起動スクリプト作成。

cd myapp
vi config/unicorn.conf
unicorn.conf
worker_processes 2
listen '/tmp/unicorn.sock'
stderr_path File.expand_path('unicorn.log', File.dirname(__FILE__) + '/../log')
stdout_path File.expand_path('unicorn.log', File.dirname(__FILE__) + '/../log')
preload_app true
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bk
sudo vi /etc/nginx/nginx.conf

nginxの設定を変更。
ファイルは全文書き換える。

nginx.conf
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    upstream unicornapp {
        server unix:/tmp/unicorn.sock;
    }

    server {
        listen       80;
        server_name  localhost;

        location / {
            proxy_pass http://unicornapp;
        }
    }
}
sudo /etc/init.d/nginx restart

unicorn起動

unicorn -c config/unicorn.conf -D

これでrailsのアプリが公開される。
http://XX.XXX.XXX.XXX

97
98
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
97
98