Nginx + PassengerでRedmineを動かしてみた。
Macで動かしているRedmineのWebサーバを「Apache + Passenger」から「Nginx + Passenger」へ変更したので、作業内容をメモ書き。Unicornは分からなくて挫折した...orz
環境
- OSX 10.9.4
- homebrew 0.9.5
Nginx・Passengerのインストール
インストールはhomebrewから行います。Passengerインストール時に、各種設定が標準出力されるので、忘れずにメモしてください。
$ brew install passenger ... 🍺 /usr/local/Cellar/passenger/4.0.45: 2547 files, 132M $ brew install nginx --with-passenger ... # 公開ディレクトリパスが標準出力されるので、メモしておくこと。 Docroot is: /usr/local/var/www ... # Nginxの設定ファイルパスが標準出力されるので、メモしておくこと。 The default port has been set in /usr/local/etc/nginx/nginx.conf to 8080 so that nginx can run without sudo. ... # passengerを有効にするための設定が標準出力されるので、メモしておくこと。 To activate Phusion Passenger, add this to /usr/local/etc/nginx/nginx.conf, inside the 'http' context: passenger_root /usr/local/opt/passenger/libexec/lib/phusion_passenger/locations.ini passenger_ruby /usr/bin/ruby ... 🍺 /usr/local/Cellar/nginx/1.6.0_1: 7 files, 3.1M, built in 22 seconds
Nginxの設定
Nginxの設定ファイルを編集し、Passengerを有効にします。Nginxの初期ポート「8080」は、Apache Tomcatなど、様々なアプリケーションで使われているので変更することをおすすめします。なお、「80」にすることも可能ですが、Nginxの起動・停止に、root権限が必要になります。
$ vi /usr/local/etc/nginx/nginx.conf http { # passengerインストール時に標準出力された内容をペーストする。 passenger_root /usr/local/opt/passenger/libexec/lib/phusion_passenger/locations.ini; passenger_ruby /usr/bin/ruby; ... server { # defaultは8080 listen 9090; server_name localhost; location / { ... # 下記二行を追加。 passenger_enabled on; passenger_base_uri /redmine; } } }
公開ディレクトリへのシンボリックリンク作成
NginxがRedmineを参照できるように、公開ディレクトリにシンボリックリンクを作成します。
$ ln -s [Redmineのインストールパス]/public /usr/local/var/www/redmine
起動
サーバを起動して、Redmineが起動されることを確認します。メモリ使用量を見ていましたが、httpdとくらべて少ないですね。これはいい。
$ nginx $ open http://localhost:9090/redmine
Mac起動時に、Nginxを起動させる。
Nginxインストール時に、plistファイルが生成されるので、これをlaunchdへ登録させます。リブート後、上記URLへアクセスすると、Redmineが表示されるはずです。
$ sudo cp /usr/local/opt/nginx/homebrew.mxcl.nginx.plist /System/Library/LaunchDaemons/ $ sudo launchctl load -w /System/Library/LaunchDaemons/homebrew.mxcl.nginx.plist $ sudo launchctl start homebrew.mxcl.nginx