Ubuntuは、aptitudeでNginxが入るんだけど、Passenger対応しているわけではない。ビルド時に指定しないとPassengerのモジュールが組み込まれないから。
以下は、passenger対応させた上でinitスクリプトの登録までする手順。
1.ビルド+インストール
gem経由でpassengerを入れる
1 | sudo gem install passenger |
passenger-install-nginx-moduleする。依存するパッケージは、apacheの時と比べて多くない。C++コンパイラぐらい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | sudo passenger-install-nginx-module ... # 以下が依存関係。通らないときは頑張って入れること * GNU C++ compiler... found at /usr/bin/g++ * Ruby development headers... found * OpenSSL support for Ruby... found * RubyGems... found * Rake... found at /usr/bin/rake * rack... found * OpenSSL development headers... found * Zlib development headers... found ... Enter your choice (1 or 2) or press Ctrl-C to abort: #=> 1 ... Please specify a prefix directory [/opt/nginx]: #=> デフォルトのままでいいでしょう ... -------------------------------------------- Nginx with Passenger support was successfully installed. ... |
2.コンフィギュアー
以下を設定する。
1 | sudo (gedit|vi) /opt/nginx/conf/nginx.conf |
... # init script的に必要なのでpid fileを指定 pid /var/run/nginx.pid; # passenger_root 等は最初から設定済みになっている ... # server { listen 8080; server_name dev.local.udzura.jp; # publicを指定してね root /var/www/dev-app/public; passenger_enabled on; # 必要であれば rails_env development; #rails_env production; ... # tips: error_page とかも指定しとくとそれっぽい }
3.イニット・スクリプトの作成
以上のサイトをコピペし、 /etc/init.d/nginx-passenger に保存しましょう。
変更箇所:
... DAEMON=/opt/nginx/sbin/nginx ... NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf" ... # 万一、あなたがaptで入れたgemのバージョンをアップデートして、 # そのせいで「gemが見つからない」とか言われてRailsが起動しない場合は、 # 以下の魔法の一行で解決する可能性があります。 export GEM_HOME=/var/lib/gems/1.8 ...
そして、
1 2 | sudo chmod a+x /etc/init.d/nginx-passenger sudo update-rc.d -f nginx-passenger defaults |
あと、ディレクトリ構成がDebianっぽくないので、そこは好みで自分で設定しましょう。
以上です。




