その他
    ホーム 技術発信 DoRuby Redmineはnginx+Passengerで

    Redmineはnginx+Passengerで

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    私はRedmineを自分のMacに入れてますが、ちょっとお試しって気分なだけなのにApacheが動作しちゃうのは少し大袈裟な気がしていました。

    なので軽量といわれる nginx(エンジンエックス) でもっと手軽に動作させられないかな…と試した際のメモを書いときます。

    とはいえ、先にやっている人がいて、こことかに書いてある事が殆どです。

    MacPortsやRubyの環境はまず整えておいてください。今回MacPortsは使いますので。また、Redmine自体は${HOME}/redmine 配下にインストールしておくものとし、データベースはSqlite3を使用します。

     1 ImageMagick及びRMagickのインストール

    sudo port install ImageMagick
    gem install rmagick
    

     2 Passengerをインストール

    gem install passenger
    

    Passengerのインストール先を確認します。ここで出てくるパスは後ほど必要になります。

    passenger-config --root
    

     3 nginxのインストール

    普通にnginxをインストールしたいところですが、これだとPassengerを組み込む際にうまくいかないので先にnginxのPortfileを編集します。

    cd /opt/local/var/macports/sources/rsync.macports.org/release/ports/www/nginx
    sudo vim Portfile
    

    ファイルの末尾へ行き、以下の行を追加しましょう

    variant passenger description {Adds passenger support} {
        configure.args-append   --add-module=${手順2で確認したパス}/ext/nginx
    }
    

    この状態でnginxのインストールを行います。

    sudo port install nginx +gzip_static +passenger +ssl
    

     4 nginxの設定

    cd /opt/local/etc/nginx
    sudo cp mime.types.example mime.types
    sudo cp nginx.conf.example nginx.conf
    

    次にnginx.confを編集します。

    sudo vim nginx.conf
    

    変更した点は以下の通りです。

        gzip  on; # デフォルトでコメントアウトされているので外す
    

    次に82行目あたりに以下のような記述を加えます。

     81     passenger_root ${手順2で出力されたパス};
     82     passenger_ruby /Users/yourname/.rvm/rubies/ruby-1.8.7-p249/bin/ruby;
     83     passenger_max_pool_size 8;
     84     passenger_max_instances_per_app 1;
     85     passenger_pool_idle_time 3600;
     86     
     87     server {
     88         listen 80;
     89         client_max_body_size 250M;
     90         server_name redmine.local;
     91         root /Users/yourname/redmine/public;
     92         passenger_enabled on;
     93         rails_env production;
     94     }
    

    ※ここでは redmine.local というホスト名を127.0.0.1として/etc/hostsに定義しているものとします。

     5 nginxの自動起動設定

    MacPorts1.9からは以下のような簡略記法が取り込まれたようです。楽ですね。

    sudo port load nginx
    

    これで、 http://redmine.local というホスト名にブラウザからアクセスするとRedmineの画面が確認できるかと思います。