PassengerでRails3を起動

PassengerでRails3を起動する。

環境は、先日に引き続きCentOS5.5。


まずはgemでpassengerのインストーラを取得。

gem i passenger

インストーラ実行。

passenger-install-apache2-module

opensslが見つからん、とか何とか。

openssl-develをyumしてruby用のライブラリをビルド。

yum install openssl-devel
cd /usr/local/src/ruby-1.9.2-p0/lib/ext/openssl/
ruby extconf.rb
make
make install

再度、passengerインストーラ実行。

passetnger-install-apache2-module

成功。


次にapacheの設定をする。
もしインストールされていないならば、yumっておく。

yum install httpd


設定は、passengerのインストール中に指示が出るので、それに従えばよい。

apacheコンフィグファイルにて、モジュールを追加。

/etc/httpd/conf/httpd.conf
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.15/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.15
PassengerRuby /usr/local/bin/ruby

LoadModuleはこの辺りに書け、というセクションがあるので、その末尾にでも書いておく。

次に、バーチャルホストの設定。
Railsアプリは、/somewhere/以下に配置する。

/etc/httpd/conf/httpd.conf
<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>

ドキュメントルートが、Railsアプリのpublicディレクトリを指していればOK。

/somewhere以下は、オーナーをroot以外にしておく。


apacheを再起動する。

/etc/init.d/httpd restart

ブラウザから、
http://www.yourhost.com
にアクセスするとRailsアプリが表示される。


Railsアプリを再起動する場合は、tmp/restart.txtを更新すればよい。

touch /somewhere/tmp/restart.txt

次にhttpからアクセスがあった際に再起動される。

以上。


これで、特定のディレクトリにRailsアプリを置くだけで動作するようになった。

複数のRailsアプリを一台のサーバーで運用することもできる。

phpのような手軽さだ。

2012年11月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

アーカイブ