Passenger





[-] 1. Restart Rails app

touch RAILS_ROOT/tmp/restart.txt

[-] 2. Install

  1. iway.dip.jp (Debian Lenny) にて (ユーザ空間で ruby, gem を動かしているので、sudo はしない):
    $ gem install passenger --no-ri --no-rdoc
  2. インストールされた apache2 用インストーラを起動 (RUBY_BIN は ruby プログラムのありか。環境によってことなる):
    $ sudo RUBY_BIN/passenger-install-apache2-module
  3. 足りてないパッケージを指示してくれるので、インストール。iway.dip.jp の Debian Lenny の場合、以下となった:
    $ sudo aptitude install libcurl4-openssl-dev libapr1-dev libaprutil1-dev apache2-prefork-dev
  4. インストーラが指示するように以下を Apache の設定に追加。 iway.dip.jp では sites-enabled/000-default の冒頭に追加した。 (gem, ruby のパスは各環境で変わる):
    LoadModule passenger_module /home/ruby/ruby-1.8.7-p249/lib/ruby/gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
    PassengerRoot /home/ruby/ruby-1.8.7-p249/lib/ruby/gems/1.8/gems/passenger-3.0.7
    PassengerRuby /home/ruby/ruby-1.8.7-p249/bin/ruby
  5. サブURIで動作させるための設定。 インストーラが最後に表示する apache2 の設定例は virtual host 用で、 サブURIで動作させるための設定ではない。で、それは passenger のドキュメント(RGEM/passenger-3.0.7/doc/Users guide Apache.html) の "3.2 Deploying to a sub URI" に述べられている。 Edgar の設定例を載せる:
    1. symlink:
      $ ln -s /home/edgar_web/edgar-0.93.0/public /var/www/x_edgar
    2. www-data ユーザがアクセスできることを確認:
      $ sudo -u www-data ls -l /var/www/x_edgar/
    3. RailsBaseURI を apache 設定ファイル(例えば sites-enabled/000-defaultに) セットする:
      RailsBaseURI /x_edgar
      <Directory /var/www/x_edgar>
        Options -MultiViews
      </Directory>
    4. Apache をリスタート

[-] 3. Rails3.1

インストール後、以下を実行する:

$ rake assets:precompile
$ touch tmp/restart.txt

これがないと、以下のエラーが log/production.log に:

ActionView::Template::Error (application.css isn't precompiled)
...





Generated by juli 2.3.2