passengerをインストール

2011年8月25日

Ruby on Railsの本番実行環境として定着したpassengerです。

では、インストールをしてみます。

まず、passengerをインストールするために必要なモジュール

Ruby

基本中の基本

rubygems

gemでインストールするので、こちらも基本

あとは、以下のライブラリ群が必要になります。

  • GNU C++ compiler
  • Curl development headers with SSL support
  • OpenSSL development headers
  • Zlib development headers
  • Ruby development headers
  • OpenSSL support for Ruby
  • RubyGems
  • Rake
  • rack
  • Apache 2
  • Apache 2 development headers
  • Apache Portable Runtime (APR) development headers
  • Apache Portable Runtime Utility (APU) development headers

手コンパイルでいれるもよし、パッケージで入れるもよし。

準備が整ったら、passengerをインストールします。

sudo gem install passenger

次に、passengerのモジュールをコンパイルしてapacheのmodファイルとして組み込みます。

sudo passenger-install-apache2-module

先ほどのライブラリ群が正常にインストールされていれば、以下のような表示が出ます。

 * GNU C++ compiler... found at /usr/bin/g++
 * Curl development headers with SSL support... found
 * OpenSSL development headers... found
 * Zlib development headers... found
 * Ruby development headers... found
 * OpenSSL support for Ruby... found
 * RubyGems... found
 * Rake... found at /usr/bin/rake
 * rack... found
 * Apache 2... found at /usr/sbin/apache2
 * Apache 2 development headers... found at /usr/bin/apxs2
 * Apache Portable Runtime (APR) development headers... found at /usr/bin/apr-1-config
 * Apache Portable Runtime Utility (APU) development headers... found at /usr/bin/apu-1-config

一つでもNotFoundが出たらインストールできません
続けて、勝手にコンパイルしていると思います。

コンパイルが完了すれば、以下のような設定のサンプルが表示されるので、それをapacheの設定ファイルに追記します。

The Apache 2 module was successfully installed.

Please edit your Apache configuration file, and add these lines:

  LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.8/ext/apache2/mod_passenger.so
  PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.8
  PassengerRuby /usr/bin/ruby1.8

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!

/etc/apache2/conf.d/passenger.conf

というファイルを作成し、設定を書き込みます。

LoadModuleの行からPassengerRubyの行までの3行です。

apacheを再起動します。

エラーが無ければ、ここまでは正常に完了です。

次に、動かすプロジェクトの設定をします。

httpd.confに

以下のVirtualHostの設定を追加します。

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

ServerName、DocumentRoot、Directoryディレクティブは各環境にあった物を各自設定してください。

これで再度apacheを再起動します。

エラーが無ければ、アクセスしてみましょう。

これでプロジェクトをpassengerで起動できました。