LoginSignup
5
5

More than 5 years have passed since last update.

MacOSX lionでrbenv0.3.0+Ruby1.9.3-p194+bundler1.1.3+Rails3.2.3+passenger3.0.12+apache2(MacOSX lion標準のもの)を動かしてみる

Posted at

前提として,rbenv0.3.0環境内にRuby1.9.3-p194をインストール済み且つbundler1.1.3・Rails3.2.3で適当なRailsアプリを作成済みというところからスタートです.

RailsアプリをApache2のサブディレクトリで動作させる準備

ln -s /somewhere/rails_sample/public Apache2のドキュメントルート/rails_sampleでシンボリックリンクを作成しておきましょう.
OSXのApache2のドキュメントルートは/Library/WebServer/Documentsだと思います.

passengerのインストール

まずgem install passengerでpassengerをインストールします(今回は3.0.12).

次にpassengerのapache2モジュールをインストールする必要があるので,~/.rbenv/versions/1.9.3-p194/bin/passenger-install-apache2-moduleを実行します.

Apache2周りの設定

passenger-install-apache2-moduleを実行するとhttp.confを編集しましょうという旨が表示されるので,言われた通りにします.
今回はOSX環境なので,/private/etc/apache2/other/passenger.confを新たに作成して以下のように書きます.

/private/etc/apache2/other/passenger.conf
LoadModule passenger_module /Users/ユーザ名/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/passenger-3.0.12/ext/apache2/mod_passenger.soPassengerRoot /Users/ユーザ名/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/passenger-3.0.12PassengerRuby /Users/ユーザ名/.rbenv/versions/1.9.3-p194/bin/ruby

RailsEnv development

RubyBaseURI /rails_sample```

上から三行分はpassengerのインストール時にhttpd.confに書くように言われるものです.
また,真ん中の`RailsEnv development`ですが,passengerはデフォルトでproductionモードでRailsを動作させるので,productionではなく別のモードで動かしたいという場合はこのように`RailsEnv モード名`と書いてください.

最後の一行はRailsアプリケーションの場所を指定しています.このように指定すると http://localhost/rails_sample でRailsアプリのルートにアクセスできます.

#passenger+bundler問題
ここまでの状態ではpassenger経由でRailsアプリを呼んだ時にbundlerでインストールしたgemを読んでくれないので,Railsアプリのルート/config/setup_load_paths.rbを作成しましょう.
このファイルはどうやらアプリの読み込み時に実行されるものらしく(参考:http://www.modrails.com/documentation/Users guide Apache.html#bundler_support),環境変数の設定などに利用できます.
ここに以下のように書きます.

```ruby:config/setup_load_paths.rb
ENV['GEM_HOME'] = "/somewhere/rails_sample/vendor/bundle/ruby/1.9.1"

GEM_HOME環境変数に使用したいgemのホームを代入しています.こうすることでbundlerでインストールされたgemが読み込まれ,正常にrailsが動作します.

5
5
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
5
5