2010年10月24日

apacheでPassenger 3.0を利用

Passenger 3.0をapacheから利用するためのメモ

環境
・OS: CentOS 5.5 64bit版
・apache: 2.2.3 (yumで標準インストール)
・ruby: 1.9.2 (ソースからコンパイル)
・railsプロジェクト名」: testnw
# which httpd
/usr/sbin/httpd

# httpd -version
Server version: Apache/2.2.3
Server built: Aug 30 2010 12:28:40

# which apxs
/usr/sbin/apxs

# which ruby
/usr/local/bin/ruby

# ruby --version
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]


前回、gemでPassenger 3.0をインストールしましたが、
今回はapacheからPassenger 3.0を実行するようにします。

Phusion Passenger 3.0 が公開


インストールされたものを確認するとapache用モジュールがありません。ドキュメントをみるとpassenger-install-apache2-moduleを実行するようになっていました。
Phusion Passenger users guid - 2. Installing, upgrading and uninstalling Phusion Passenger

そのため上記のドキュメントに沿って、以下のコマンドでインストールします。
# /usr/local/bin/passenger-install-apache2-module




インストールが完了したら、以下のようにapacheのDocumentRootにrailsプロジェクトへの
リンクを作成します

・railsのプロジェクト「testnw」の実体が以下にあるとします。
/var/rails/testnw

CentOSではDocumentRootが /var/www/html/ なので、そこからリンクを張ります
# cd /var/www/html/
# ln -s /var/rails/testnw/public/ testnw
# ls -al
合計 20
drwxr-xr-x 2 root root 4096 9月 19 02:01 .
drwxr-xr-x 9 root root 4096 8月 31 01:32 ..
lrwxrwxrwx 1 root root 18 9月 19 02:01 testnw -> /var/rails/testnw/public/


以下のような/etc/httpd/conf.d/rails.confを作成します。
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.0/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.0
PassengerRuby /usr/local/bin/ruby

RailsBaseURI /testn

今回はrailsのプロジェクトをサブディレクトリで使用しますので、VirtualHostの設定は使用していません。

次にrailsのファイルを修正するため、railsプロジェクトのトップに移動します。
# cd /var/rails/testnw/
# cd config/environments


開発用はdevelopmentで実行し、apacheから動作はproductionで実行します。
apacheから実行するproductionのときのみサブディレクトリで動作させるので production.rbに以下を追加します。
ENV['RAILS_RELATIVE_URL_ROOT'] = "/testnw"


config/environments/production.rb
Testnw::Application.configure do
ENV['RAILS_RELATIVE_URL_ROOT'] = "/testnw"

# Settings specified here will take precedence over those in config/environment.rb

# The production environment is meant for finished, "live" apps.
# Code is not reloaded between requests
config.cache_classes = true

・・・ 省略

# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation can not be found)
config.i18n.fallbacks = true

# Send deprecation notices to registered listeners
config.active_support.deprecation = :notify

end


上記のまとめ

apache2でPassenger 3.0を利用
posted by jun1 at 23:50| Comment(0) | TrackBack(0) | ruby
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/41474933

この記事へのトラックバック