C++ ときどき ごはん、わりとてぃーぶれいく☆

USAGI.NETWORKのなかのひとのブログ。主にC++。

memo: nginx-1.0.15 + passenger-3.0.12-2.1.2 / openSUSE-12.2

状況

openSUSE-12.2にnginx+passengerを仕込みたい。

準備

rubygem-passenger-nginx

zypper se passenger
 ...

など眺めつつ、

zypper if rubygem-passenger-nginx
 ...

を見ると rubygem-passenger-nginx-3.0.12-2.1.2 がopenSUSE標準のリポジトリーにも用意されていた様だ。入れる。

zypper in rubygem-passenger-nginx

/etc/nginx/nginx.conf ; http

nginxにpassengerを使うための基本的な設定を追加する。

 ...
http {
 ...
  passenger_root /usr/lib64/ruby/gems/1.9.1/gems/passenger-3.0.12;
  passenger_ruby /usr/bin/ruby;
 ...
}
 ...

先ずは上記2行のみ記述追加してnginxの設定チェックを行う。勿論、passengerの在り処やrubyの在り処は導入するバージョンやOSやディストリビューションによって異なる可能性があるから、そこはfindとかwhichとかして確認してから設定する事。

nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

問題無いらしいのでたぶん使える。

/etc/nginx/nginx.conf ; server

具体的にpassengerを使いたいserverを設定する。

 ...
server {
 ...
  location ... {
   ...
    root /srv/.../xxx/public
    passenger_enabled on;
    index index.html;
   ...
  }
 ...
}
 ...

passenger_enabledのみが本来の必須設定、但し事実上 root と index は固定みたいなものなので合わせてこの3行を追記、確認する。

設定を変更したらもちろんテストする。

nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

よろしい・w・

結果

systemctl restart nginx.service
systemctl status nginx.service

などしてnginxを再始動する。nginxにpassengerを設定したserverにアクセスする。

f:id:USAGI-WRP:20130101172154p:plain

これはxxxにChiliProjectを設置して置いた例。もちろんnginx-passengerでテストする前にWEBRICK(script/server -e production -p 12345)とか動作テストしてあったので、nginx-passengerも設定が完了すれば当然の様に動いてくれた図。

おまけ

どうも普段関わる気が無いのにちょっと便利そうなアプリなんかがあってrubyに関わると無駄に時間を浪費する、そんな時代もそろそろ過去になってきたかな。gemの動作も早くなった気もするし、bundleだとか他にもなんかパッケージの依存性解決する仕組みが実用的になって、バージョンセンシティブ過ぎてイライラしたりする時間も大幅に減ったし。gem周りのエラー表示なんかはもうちょっとリッチになった方がいいと思うけど。