Passenger (Ruby on Rails) のメモ 2013/10/28
Ruby on Rails のアプリをApacheで動かすためのモジュール。
Passengerの他にUnicornというアプリケーションサーバもある。
インストール 2013/05/29
以下のコマンドだけでよい。
sudo gem install passenger
sudo passenger-install-apache2-module
足りないパッケージがあった場合は全部やり方を
passenger-install-apache2-module
が教えてくれるのでそのとおりにすればよい。
Ubuntuの場合は事前に以下を実行すると少し楽になる。
sudo apt-get install build-essential libcurl4-openssl-dev libssl-dev zlib1g-dev apache2-threaded-dev libapr1-dev libaprutil1-dev
環境の切替 2013/09/28
Railsの実行環境として、production
, development
, test
の3種類を選択できる。
Passenger で動かすときのデフォルトは、production
環境での動作となる。
development
または test
に切り替えたい場合は、Apacheの設定に以下を書き足す。
VirtualHost
の中に書けばそのバーチャルホストにだけ適用できる。
RailsEnv development
環境変数 2013/04/03
環境変数を設定したい場合は、Apacheの設定に以下のように書き足す。
SetEnv GEM_HOME /home/hogehoge/.gems
特定のrailsアプリケーションのみ再起動するには 2013/04/05
Passenger で動いているrailsアプリケーションを再起動するには tmp
ディレクトリに
restart.txt
というファイルを設置する。ファイル設置後最初のアクセスで、再起動が実行される。
touch tmp/restart.txt
古いバージョンだと再起動完了後にこのファイルは削除されるらしいが、少なくとも passenger 3.0.19 では再起動してもファイルは削除されない。
tmp/restart.txt
のタイムスタンプを見ている様子。
このファイルをgit管理下に入れて、バージョンが変わるごとにこのファイルの内容を書き換えて、サーバサイドで git pull
するごとにこのファイルのタイムスタンプが変わるようにすれば、自動で再起動がかかって便利そう。
Apacheを再起動するとすべてのアプリケーションで数秒のダウンタイムが発生してしまうが、この方法なら影響するのはこのアプリケーションのみで、ダウンタイムも発生しない。