プロジェクト管理 · 1 min read · Jan 23, 2026

nginx上でのRedmineプロジェクト管理の実行 (Debian Wheezy)

nginx上でのRedmineプロジェクト管理の実行 (Debian Wheezy)

RedmineはRubyで書かれたプロジェクト管理ツールです。このチュートリアルでは、Debian Wheezy上のnginxウェブサーバーを介して、thin(高速Rubyウェブサーバー)を使用してRedmineを提供する方法を説明します。

これがあなたにとって機能することを保証するものではありません!

1 前提条件

私は、ユーザーweb1およびグループclient0が所有するドキュメントルート/var/www/example.com/web(ここにRedmineがインストールされます)を持つウェブサイトwww.example.comを準備しました。

また、Redmine用のMySQLデータベースc0db1も準備しました。ユーザー名もc0db1で、パスワードはFyZ5z4QGfhTf8です。

2 Redmineのインストール

まず、いくつかの前提条件をインストールします:

apt-get install thin ruby rake rubygems libopenssl-ruby libmysql-ruby librmagick-ruby ruby-dev libmysqlclient-dev libmagick-dev curl
gem install sass  
gem install compass

最新のRedmineをダウンロードし、ドキュメントルート/var/www/example.com/webにコピーします:

cd /tmp  
wget http://www.redmine.org/releases/redmine-2.4.2.tar.gz  
tar xvfz redmine-2.4.2.tar.gz  
mv redmine-2.4.2/* /var/www/example.com/web  
cd /var/www/example.com/web  
chown -R web1:client0 *

MySQLデータベースのログイン情報を入力します:

cp config/database.yml.example config/database.yml  
vi config/database.yml
[...]
production:
  adapter: mysql2
  database: c0db1
  host: localhost
  username: c0db1
  password: "FyZ5z4QGfhTf8"
  encoding: utf8
[...]

他の必要なパッケージをインストールし、データベースを埋めます:

apt-get install libmagickwand-dev
gem install rmagick
gem install bundler
bundle install --without development test postgresql sqlite
rake generate_secret_token
rake db:migrate RAILS_ENV="production"
rake redmine:load_default_data RAILS_ENV="production"

3 thinの設定

次に、nginxがリクエストをプロキシするRubyウェブサーバーthinを設定します。

ln -s /etc/thin1.9.1 /etc/thin
mkdir /var/log/thin  
chmod 755 /var/log/thin  
cd /etc/thin

ドキュメントルートの所有者(web1)と同じ名前のthin設定ファイルを作成します:

vi web1.yml

ログ、pid、ソケット、ユーザー行に正しいユーザー(web1)を、グループ行に正しいグループ(client0)を使用し、chdir行に正しいドキュメントルートを使用することを確認してください:

---
chdir: /var/www/example.com/web
environment: production
timeout: 30
log: /var/log/thin/web1.log
pid: /var/run/thin/web1.pid
max_conns: 1024
max_persistent_conns: 512
require: []
wait: 30
socket: /var/run/thin/web1.sock
daemonize: true
user: web1
group: client0
servers: 1
prefix: /

thinがソケットを作成する/var/run/thinディレクトリを作成します:

mkdir /var/run/thin  
chown -R web1:client0 /var/run/thin

thinが起動したときにディレクトリが存在することを確認するために、/etc/init.d/thin初期化スクリプトのSCRIPT_NAME行の直後に次の行を追加します:

vi /etc/init.d/thin
[...]
DAEMON=/usr/bin/thin
SCRIPT_NAME=/etc/init.d/thin

test -e /var/run/thin || install -m 755 -o web1 -g client0 -d /var/run/thin

[...]

今、thinを起動します…

/etc/init.d/thin start

… そして、それが作成するソケット(この場合は/var/run/thin/web1.0.sock)に注意してください - nginxの設定で必要になります:

root@server1:/etc/thin# /etc/init.d/thin start  
[start] /etc/thin1.9.1/web1.yml ...  
Starting server on /var/run/thin/web1.0.sock ...  
root@server1:/etc/thin#

Monitを使用している場合は、/etc/monit/monitrcに次の行を追加して、thinが常に実行されていることを確認できます:

vi /etc/monit/monitrc
[...]
check process thin with pidfile /var/run/thin/web1.0.pid
   start program = "/etc/init.d/thin start"
   stop  program = "/etc/init.d/thin stop"
[...]

その後、Monitを再起動します:

/etc/init.d/monit restart

4 nginxの設定

次に、Redmineにアクセスするためのnginx vhostを設定する必要があります。次の設定をserver {}コンテナ(またはISPConfigを使用している場合はnginxディレクティブフィールド)に貼り付けてください - 正しいthinソケットを使用していることを確認してください:

client_max_body_size 100M;

location / {
    proxy_set_header X-Reak-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;

    if (-f $request_filename/index.html) {
      rewrite (.*) $1/index.html break;
    }

    if (-f $request_filename.html) {
      rewrite (.*) $1.html break;
    }

    if (!-f $request_filename) {
      proxy_pass http://unix:/var/run/thin/web1.0.sock;
      break;
    }
}

これで完了です!今、あなたのウェブサイトを訪れて、Redmineを使用できるはずです。デフォルトのユーザー名はadmin、パスワードもadminです。

4 リンク

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。