Project

General

Profile

Passenger

  • Apacheに組み込むタイプのRuby on RailsのWEBサーバです。
    同種のmongrelに比べて、速度面での大きなメリットがあります。
  • しかしながら、Apacheのホストを1つ消費することになるので
    運用する上では注意する必要があります。
     

前提条件

  • ruby on rails の構築が完了している必要があります。
  • Apache でWEBサーバを構築している必要があります。
     

インストール

  • gemを使用し、passengerをインストールします。
    # gem install passenger
    
  • passengerモジュールのビルドに必要なパッケージをインストールします。
    # yum install httpd-devel curl curl-devel
    
  • passengerをビルドします。
    passenger-install-apache2-module
    

     

設定

  • ビルド時に表示されるコンフィグ例をメモします。
    The Apache 2 module was successfully installed.
    Please edit your Apache configuration file, and add these lines:
    
    LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
    PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7
    PassengerRuby /usr/local/bin/ruby
    
    After you restart Apache, you are ready to deploy any number of Ruby on Rails
    applications on Apache, without any further Ruby on Rails-specific
    configuration!
    
    Press ENTER to continue.
    

    Deploying a Ruby on Rails application: an example
    
    Suppose you have a Rails application in /somewhere. Add a virtual host to your
    Apache configuration file and set its DocumentRoot to /somewhere/public:
    
    <VirtualHost *:80>
    ServerName www.yourhost.com
    DocumentRoot /somewhere/public # <-- be sure to point to 'public'!
    
    <Directory /somewhere/public>
    AllowOverride all # <-- relax Apache security settings
    Options -MultiViews # <-- MultiViews must be turned off
    </Directory>
    </VirtualHost>
    
    And that's it! You may also want to check the Users Guide for security and
    optimization tips, troubleshooting and other useful information:
    
    /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7/doc/Users guide Apache.html
    
    Enjoy Phusion Passenger, a product of Phusion (www.phusion.nl) :-)
    http://www.modrails.com/
    
    Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.
    
  • つまり、次のようなコンフィグとして追加します。
    • 「/etc/httpd.conf.d/passenger.conf」
      LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
      PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.7
      PassengerRuby /usr/local/bin/ruby
      
    • 「/etc/httpd/conf/httpd.conf」
      # 末尾
      <VirtualHost *:80>
      ServerName example.co.jp
      DocumentRoot /usr/local/public
      
      # アプリケーションはpublic以下に配置するらしい
      <Directory /usr/local/public>
      AllowOverride all
      Options -MultiViews
      </Directory>
      </VirtualHost>
      
  • 上記を設定し、httpdを再起動する。
    # service httpd restart
    

     

 

戻る