Redmineをサブディレクトリーで運用する

RedmineというIssue Tracking Systemがある。 多機能であるが使いやすく、ソフトウェア開発以外でも使えるので、 便利に使わせてもらっている。 pkgsrcだと、pkgsrc/deve/ruby-redmineに収録されている。この記事の適用されるバージョンは、3.3.2である。

これはこれで、改善すべき点が山ほどあるパッケージなのだが、 とりあえず手軽に動かすと言うだけであれば、使えるものではある。

pkgsrc/devel/ruby-redmineでは、 標準ではunicornというアプリケーションサーバーで動かすことができるようになっている。 だが、標準ではあくまで、ルートディレクトリーで動かすような設定となっている。

だが、このようなサービスは、HTTPSで運用すべきであるし、 そうなると、サーバー証明書を取得するコストも考えると、 他のサービスと共有されたサーバー上で運用されることとなる。 一番簡単なのは、サブディレクトリーにアクセスすると、 Redmineを使用できるという運用である。 つまり、https://www.example.com/redmine/にアクセスすると 使用できると言うことである。 この時、https://www.example.com/nextcloud/にアクセスすると Nextcloudが動いていると言った状態である。

設定内容

変更すべきは3箇所である。

  • /usr/pkg/share/examples/rc.d/redmine_unicorn22からコピーされた/etc/rc.d/redmine_unicorn22 (ここで22はRuby 2.2を使っていることを示している。)
  • /usr/pkg/share/ruby22-redmine/app/config.ru
  • /usr/pkg/share/ruby22-redmine/app/config/environment.rb

/etc/rc.d/redmine_unicorn22への変更

RAILS_RELATIVE_URL_ROOT='/redmine'をunicornの起動の際の環境変数に追加する。


$ diff -u /usr/pkg/share/examples/rc.d/redmine_unicorn22  /etc/rc.d/redmine_unicorn22
--- /usr/pkg/share/examples/rc.d/redmine_unicorn22      2017-02-03 17:38:39.000000000 +0900
+++ /etc/rc.d/redmine_unicorn22 2017-02-03 18:43:18.000000000 +0900
@@ -19,6 +19,7 @@
        cd /usr/pkg/share/ruby22-redmine/app
        GEM_HOME=/usr/pkg/share/ruby22-redmine/gems \
        GEM_PATH=/usr/pkg/share/ruby22-redmine/gems \
+       RAILS_RELATIVE_URL_ROOT='/redmine' \
                /usr/pkg/bin/ruby22 \
                /usr/pkg/share/ruby22-redmine/gems/bin/bundle exec unicorn \
                -c /usr/pkg/share/ruby22-redmine/app/config/unicorn.rb \

/usr/pkg/share/ruby22-redmine/app/config.ru

run RedmineApp::Applicationmapで囲む。


$ diff -u config.ru  /usr/pkg/share/ruby22-redmine/app/config.ru
--- config.ru   2017-02-04 16:28:37.000000000 +0900
+++ /usr/pkg/share/ruby22-redmine/app/config.ru 2017-02-03 18:22:44.000000000 +0900
@@ -1,4 +1,7 @@
 # This file is used by Rack-based servers to start the application.

 require ::File.expand_path('../config/environment',  __FILE__)
-run RedmineApp::Application
+#run RedmineApp::Application
+map ActionController::Base.relative_url_root || "/" do
+  run RedmineApp::Application
+end

/usr/pkg/share/ruby22-redmine/app/config/environment.rb

ActionController::Base.relative_url_root = "/redmine"を最下行に追加する。


deuterium$ diff -u environment.rb  /usr/pkg/share/ruby22-redmine/app/config/environment.rb
--- environment.rb      2017-02-04 16:30:29.000000000 +0900
+++ /usr/pkg/share/ruby22-redmine/app/config/environment.rb     2017-02-03 18:22:53.000000000 +0900
@@ -12,3 +12,4 @@

 # Initialize the Rails application
 Rails.application.initialize!
+ActionController::Base.relative_url_root = "/redmine"

nginxの設定

/usr/pkg/etc/nginx.nging.confは以下のように設定しておく。


http {
(snip)
    upstream unicorn_redmine {
        server unix:/usr/pkg/share/ruby22-redmine/unicorn.redmine.sock fail_timeout=0;
(snip)
    server {
        listen 443;
        ssl on;
    (snip)
        location /redmine {
                try_files $uri @unicorn_redmine;
        }
    (snip)
    }
(snip)
}

コメント

このブログの人気の投稿

#5000へCメールを送れないau端末でezweb.ne.jpの電子メールアドレスをIMAP4/SMTPで扱う方法

Vaio Pro 11/13用のサードパーティーのACアダプター

Windows 7 Professional用のNFSクライアントを使う (NFS 4.1のみ)