Redmine
Trac が何かとインストールでとらぶるし、開発に勢いがないっぽいことを発見したので、 Redmine に乗り換える。
インストール
前提条件
- Apache2 がインストールされている
- MySQL 5.1 がインストールされている
要件
- OpenLDAP で認証する
- DB は MysQL
Ruby 関連
Ruby、RubyGems、rake をインストール。
$ sudo apt-get install ruby1.8 rubygems rake $ sudo gem install rack -v=1.0.1
オプションモジュールをインストール。
$ sudo apt-get install imagemagick
MySQL の C binding
$ sudo gem install mysql
エラー出た。
extconf.rb:10:in `require': no such file to load -- mkmf (LoadError)
足りてないパッケージをインストールして再度。
$ sudo apt-get install ruby1.8-dev libmysqlclient-dev $ sudo gem install mysql
$ sudo gem install mysql Building native extensions. This could take a while... Successfully installed mysql-2.8.1 1 gem installed Installing ri documentation for mysql-2.8.1... No definition for next_result No definition for field_name : : No definition for error_errno No definition for error_sqlstate
と “No definition for …” が大量に出力されるが、これは大丈夫らしい。
Redmine
Redmine 本体をインストール。アーカイブ をダウンロード。
- redmine-1.1.3.tar.gz を使用する
ダウンロードして解凍する。
$ wget http://rubyforge.org/frs/download.php/74722/redmine-1.1.3.tar.gz $ tar -xzvf ./redmine-1.1.3.tar.gz
redmine-1.1.3 ディレクトリを redmine にリネームして任意の位置に移動。以降このディレクトリ内で作業する。
空のDBと接続用のユーザを作成。ユーザ名は何でもよいが、今回は redmine とする。
$ mysql -u root -p
mysql> create database redmine character set utf8; mysql> create user 'redmine'@'localhost' identified by 'my_password'; mysql> grant all privileges on redmine.* to 'redmine'@'localhost'; mysql> exit
設定ファイルのテンプレートをコピーして編集する。
$ sudo cp ./config/database.yml.example ./config/database.yml $ sudo vi ./config/database.yml
production 部分を変更。
production: adapter: mysql database: redmine host: localhost username: redmine password: <PASSWORD> encoding: utf8
セッションストア秘密鍵を生成。
$ rake config/initializers/session_store.rb
Missing the i18n 0.4.2 gem. Please `gem install -v=0.4.2 i18n`
言われるがままインストール。
$ sudo gem install -v=0.4.2 i18n
そして再度。
$ rake config/initializers/session_store.rb
データベースに Redmine の管理者アカウントを作成。
$ rake db:migrate RAILS_ENV="production"
Ubuntuで以下のエラーが出た場合がある。
Rake aborted! no such file to load -- net/https
エラーが出た場合は、以下をインストール。
$ sudo apt-get install libopenssl-ruby1.8
そして再度。
$ rake db:migrate RAILS_ENV="production"
デフォルトのデータを DB に登録。
$ rake redmine:load_default_data RAILS_ENV="production"
Select language: bg, bs, ca, cs, da, de, el, en, en-GB, es, eu, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en]
ja を入力。
次に、パーミッションの設定。以下のフォルダに対して書き込み権限を与える。ディレクトリがない場合は作成する。Passenger で Rails アプリケーションを実行した時の実行ユーザーは、 “application/config/environment.rb” のオーナーと同じになる。
- files
- log
- tmp
- public/plugin_assets
$ sudo chown -R www-data:www-data files log tmp public/plugin_assets $ sudo chmod -R 775 files log tmp public/plugin_assets
おそらくインストール中のユーザになっており、 redmine/config/environment.rb のオーナと同じなので変更する必要はない。
Redmine にアクセスできるかを確認。
$ sudo ruby script/server webrick -e production
http://localhost:3000/ にアクセスして、 Redmine の画面が表示されればひとまずOK。
デフォルトの管理者アカウント
- ID: admin
- PW: admin
Apache2 に組み込み
Passenger をインストール。
$ sudo apt-get install libapache2-mod-passenger
$ sudo a2enmod passenger
とするだけでも良いかも。未検証。
$ sudo gem install passenger $ sudo /var/lib/gems/1.8/bin/passenger-install-apache2-module
Welcome to the Phusion Passenger Apache 2 module installer, v3.0.7. This installer will guide you through the entire installation process. It shouldn't take more than 3 minutes in total. Here's what you can expect from the installation process: 1. The Apache 2 module will be installed for you. 2. You'll learn how to configure Apache. 3. You'll learn how to deploy a Ruby on Rails application. Don't worry if anything goes wrong. This installer will advise you on how to solve any problems. Press Enter to continue, or Ctrl-C to abort.
エンターを押して続ける。
Checking for required software... * GNU C++ compiler... found at /usr/bin/g++ * Curl development headers with SSL support... not found * OpenSSL development headers... not found * Zlib development headers... found * Ruby development headers... found * OpenSSL support for Ruby... found * RubyGems... found * Rake... found at /usr/bin/rake * rack... found * Apache 2... found at /usr/sbin/apache2 * Apache 2 development headers... not found * Apache Portable Runtime (APR) development headers... not found * Apache Portable Runtime Utility (APU) development headers... not found Some required software is not installed. But don't worry, this installer will tell you how to install them. Press Enter to continue, or Ctrl-C to abort.
いろいろ足りないらしい。とりあえずエンター押してみた。
Installation instructions for required software * To install Curl development headers with SSL support: Please run apt-get install libcurl4-openssl-dev or libcurl4-gnutls-dev, whichever you prefer. * To install OpenSSL development headers: Please run apt-get install libssl-dev as root. * To install Apache 2 development headers: Please run apt-get install apache2-prefork-dev as root. * To install Apache Portable Runtime (APR) development headers: Please run apt-get install libapr1-dev as root. * To install Apache Portable Runtime Utility (APU) development headers: Please run apt-get install libaprutil1-dev as root. If the aforementioned instructions didn't solve your problem, then please take a look at the Users Guide: /var/lib/gems/1.8/gems/passenger-3.0.7/doc/Users guide Apache.html
インストールコマンドを表示してくれる親切設計だった。
言われるがままインストール。
$ sudo apt-get install libcurl4-openssl-dev libssl-dev apache2-prefork-dev libapr1-dev libaprutil1-dev
再度 passenger-install-apache2-module を実行。
$ sudo /var/lib/gems/1.8/bin/passenger-install-apache2-module
今度はうまくいき、以下の表示が。
The Apache 2 module was successfully installed. Please edit your Apache configuration file, and add these lines: LoadModule passenger_module /var/lib/gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so PassengerRoot /var/lib/gems/1.8/gems/passenger-3.0.7 PassengerRuby /usr/bin/ruby1.8 After you restart Apache, you are ready to deploy any number of Ruby on Rails applications on Apache, without any further Ruby on Rails-specific configuration! Press ENTER to continue.
Apache2 への設定例が出力される。
<VirtualHost *:80> ServerName www.yourhost.com DocumentRoot /somewhere/public # <-- be sure to point to 'public'! <Directory /somewhere/public> AllowOverride all # <-- relax Apache security settings Options -MultiViews # <-- MultiViews must be turned off </Directory> </VirtualHost>
が、これだと Apache2 が Redmine 専用になってしまうので、以下のディレクティブを追加。
Alias "/redmine" "/usr/local/redmine/public/" <Directory /usr/local/redmine/public/> RailsBaseURI /redmine Options -MultiViews AllowOverride all </Directory>
お好みで調整。
DocumentRoot に設定したフォルダにシンボリックリンクを作成。
$ cd /var/www/dev $ ln -s /usr/local/redmine/public/ ./redmine
Apache2 を再起動して完了。
あとは admin でログインすれば細かい設定は変更できる。
Subversion との連携
Redmine のインタフェースでリポジトリの設定をしても、チケットとリビジョンを対応付けられるが、コミット後すぐには行われない。コミット後すぐに対応付けられるように、 Subversion のフックを利用する。
“http://[redmine url]/sys/fetch_changesets?id=[project identifier]&key=[your service key]” にアクセスると対応付けが行われる。
[your service key]は Redmine に admin でログインすると、 Settings → Repositories に表示される。
例えば wget を使ってアクセスする場合。
$ wget --no-check-certificate --http-user=USERNAME --http-password=PASSWORD --output-document=- "https://localhost/redmine/sys/fetch_changesets?id=PROJECT_ID?key=BhauwHUkjH786Hq7HG" > /dev/null 2>&1 &
オプションはお好みで調整
- –no-check-certificate
- サーバ証明書のチェックをしない
- –http-user=
- –http-password=
- 接続に認証が必要な場合はユーザ名とパスワードを指定
- –output-document=
- 出力ファイル名を指定。“-” を指定すると標準出力に出力される
Subversion のフックを作成する。
$ sudo vi /share/svn/YourProject/hooks/post-commit
wget か ruby のコマンドをフックに追加。
#!/bin/sh ruby /path_to_redmine/redmine/script/runner "Repository.fetch_changesets" -e production > /dev/null 2>&1 &
post-commit のオーナとパーミッションを変更。
$ sudo chown www-data:www-data /share/svn/YourProject/hooks/post-commit $ sudo chmod 755 /share/svn/YourProject/hooks/post-commit
で完了。
プラグイン
Mylyn
Mylyn のサーバサイドプラグインを導入
インストールに ruby-git バインディングが必要なのでインストール。
$ sudo apt-get install libgit-ruby1.8
Redmine をインストールしたディレクトリに移動して以下のコマンドを実行。
$ ruby script/plugin install git://redmin-mylyncon.git.sourceforge.net/gitroot/redmin-mylyncon/redmine-mylyn-connector
アップデートする場合は、
$ ruby script/plugin install --force git://redmin-mylyncon.git.sourceforge.net/gitroot/redmin-mylyncon/redmine-mylyn-connector
Redmine の REST web サービスを有効にするとプラグインが利用できる。admin でログインして設定変更。
- [Administration]→[Settings]→[Authentication]
- [Enable REST web service]にチェック
ちなみに Eclipse 側のコネクタは、「新規ソフトウェアのインストール」を使って以下のURLからインストール。