passengerをインストール
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で起動できました。