petitviolet_blog

@petitviolet blog

RailsアプリをさくらVPS上のpassengerを使って本番環境で動かす(1)

状況

さくらVPS上のapacheで独自ドメイン(http://example.com)のWebサイトを運営しており、その下にぶら下げる形で(http://example.com/hogerails)Railsアプリを動かしたい。
Railsアプリはローカルで作成し、rails serverでは起動する状態。

やったこと

  1. Ruby1.9.3のインストール <--- ここから
  2. Rails3.2.13のインストール
  3. passengerのインストール <--- ここまで
  4. ローカルからサーバーにRailsアプリをアップロードし、設置
  5. apacheのルーティング等の設定( /etc/httpd/conf/httpd.conf )
  6. passengerの設定( /etc/httpd/conf.d/passenger.conf )
  7. Railsの設定
  8. bootstrapのiconのための設定

事前準備

CentOSのバージョン
cat /etc/redhat-release
#  => CentOS release 6.4 (Final)

とでた。

ライブラリのインストール

後々必要になるものを先にyumでインストールしておきます

sudo yum -y install zlib-devel openssl-devel curl-devel httpd-devel apr-devel apr-util-devel

これは人によって変わるかも知れませんので、作業の過程で必要になるかも知れません。
適宜インストールしましょう。

rbenvのインストール

まずrubyを使えるようにします。

ダウンロード
cd /usr/local
git clone git://github.com/sstephenson/rbenv.git rbenv
chown -R hoge:hoge rbenv
mkdir rbenv/plugins
cd rbenv/plugins
git clone git://github.com/sstephenson/ruby-build.git ruby-build
chown -R hoge:hoge ruby-build

次に環境変数の設定
シェルとしてzshを使っているなら~/.zprofileに

export RBENV_ROOT=/usr/local/rbenv
export PATH=$RBENV_ROOT/bin:$PATH
eval "$(rbenv init -)"

と書きます。

インストール
rbenv install  # rubyのバージョンチェック
# ruby1.9.3を使いたかったので
rbenv install 1.9.3-p448
rbenv rehash
rbenv global 1.9.3-p448

これでrubyはok

which ruby
# => /usr/local/rbenv/shims/ruby

確認しときましょう。

Rails3のインストール

gem install rails -v "3.2.13"
gem install passenger

これだけでいけるでしょう。

Passengerのインストール

Passengerとは

Ruby on Railsアプリケーションを実行するためのApacheモジュールで、
ファイルをアップロードするだけでデプロイ出来ることになる。

インストール

なお、apacheは入ってるものとします。

gem install passenger
passenger-install-apache2-module

これでインストール事態は完了しますが、

LoadModule passenger_module /usr/local/rbenv/versions/ruby-1.9.3-p448/lib/ruby/gems/1.9.1/gems/passenger-4.0.10/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/gems/passenger-4.0.10
PassengerRuby /usr/local/rbenv/versions/1.9.3-p448/bin/ruby

といった内容のおそらく"3行"が出力されるので、メモしておきましょう。

/etc/http/conf.d/passenger.conf

にそのまま貼りつけてファイルを作ってください。
環境によって出力内容は異なるので上のものをコピペしても動かないかと思います。

また、必要なライブラリなども出力してくれるので、これもメモしてインストールしましょう。
一番始めの

sudo yum -y install zlib-devel openssl-devel curl-devel httpd-devel apr-devel apr-util-devel

で恐らく足りるはず。

とりあえずここまで