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>
- 「/etc/httpd.conf.d/passenger.conf」
- 上記を設定し、httpdを再起動する。
# service httpd restart
¶
¶