Redmine(非パッケージ)をUbuntu14.04にインストールする手順(暫定)





整理すると、導入して稼働させたのは以下。
Redmine: 2.5-stable(SVNリポジトリ)版
OS: Ubuntu 14.04 amd64
LAMP選択: Ruby, Apache2, MySQL の組み合わせを採用
LAMP導入: Ubuntu14.04標準パッケージを使用
その他(Ruby gem他): Ubuntu14.04標準パッケージを使用


Redmine本体以外は、Ubuntuの標準パッケージを使うことにこだわった。
これは導入の面倒を可能な限り省くためである。
結果的に、Ubuntu14.04が出たばかりの時期であることもあり、バージョン齟齬による問題は起こらなかった。

反対に、 Ubuntuで提供されているRedmineの標準パッケージを使わなかったのは、Redmineの特定バージョン(新版など)を使いたくなった場合に、この導入手順が役に立つよう。
単純に、Ubuntuパッケージ版では最新でない2.4.2が提供されており、最新の2.5版が使いたかったことも理由である。

LAMPは、Rubyはともかく、ほかはApache2/MySQLとした。
Redmineは各種DB・サーバアプリケーションに対応しており、Ruby界隈は新技術との親和性が高いため、Apache2/MySQL以外のアプリケーションを使った手順を紹介している場合もある。
(もちろんこの場合、Apache2/MySQLに読み替えるか、そちらのアプリケーションを使うことになる)
これは、私が使い慣れていて、他に何か始めた際に邪魔にならないのがApache2/MySQLであるというだけの理由。
(今回nginxを導入したとして、後でApache2と共存させるのに頭を悩ませるようなことを避けたかった。)

タイトルの"(暫定)"は、『とりあえず動いていますよ』という意味で、導入手順の最後に、Redmineをサブディレクトリに導入しておきながらApacheの設定ファイルには"DocumentRoot /var/www/html/redmine"と指定する行儀の悪い設定ファイルを書いているため。
たぶん、調べればすぐ解決する問題だが、操作に慣れる目的で導入した、自分でしか使わないRedmineなので、次にインストールする時か、実際に問題が表面化するまでは放置することとした。

Redmine公式サイトのインストール手順を参考にした。
サブディレクトリへのRedmine導入は、公式インストール手順では『2.』として説明されている。

なお、本記事はRedmine導入作業中に書いたメモを元にしている。
そのため、十分に整理・説明されていない。
クリーンな環境での確認もしていないので、抜けている箇所があるかもしれない。
誰か、綺麗な手順に書きなおすか、導入スクリプトにまとめてくれると嬉しく思う。

###### 依存アプリケーションのインストール

## 標準パッケージ(apt)
sudo apt-get install ruby2.0 mysql-server apache2 -y

その他、gemなどのパッケージはあとで導入。

###### Redmineのダウンロードと配置

公式サイト(http://redmine.jp/download/)に書いてあるとおりに、SVNリポジトリから2.5版を取得

sudo apt-get install subversion -y
cd /var/www/html
svn checkout http://svn.redmine.org/redmine/branches/2.5-stable redmine


###### mysqlの設定

テーブルは自動生成? 設定する必要はないらしい。

## UTF-8

各セクションに下記文字コード設定を追記
詳しくは公式インストール手順にて。

vim /etc/my.cnf

[mysqld]
character-set-server=utf8
[mysql]
default-character-set=utf8


sudo service mysql restart

公式インストール手順の通りにUTF-8設定になったことを確認
mysql -u root -p
mysql> show variables like 'character_set%';



## redmineのmysqlユーザを作成

パスワードは適切に設定する。

mysql -u root -p
mysql> create database db_redmine default character set utf8;
mysql> grant all on db_redmine.* to user_redmine@localhost identified by 'パスワード';
mysql> flush privileges;
mysql> exit;


###### Redmine設定ファイル

## データベース設定

vim redmine/config/database.yml


production:
  adapter: mysql2
  database: db_redmine
  host: localhost
  username: user_redmine
  password: ********
  encoding: utf8


## Redmine設定

vim redmine/config/configuration.yml

production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25
      domain: "redmine.example.com"
      # localhostのSMTPサーバを使用する場合

  rmagick_font_path: /usr/share/fonts/truetype/fonts-japanese-gothic.ttf

database_cipher_key: ******



###### 追加のアプリケーション

gem -> bundler -> 各種パッケージ
Redmineに添付されているbundlerインストール設定ファイルを使って、必要なパッケージを導入する。

sudo gem install bundler
bundle install --without development test


下記エラーが出るので、必要なパッケージをAptでUbuntuに導入していくことで対応。
##

An error occurred while installing json (1.8.1), and Bundler cannot continue.
Make sure that `gem install json -v '1.8.1'` succeeds before bundling.


とりあえずこちらに従い、
sudo apt-get install ruby-dev -y

##

An error occurred while installing mysql2 (0.3.16), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.16'` succeeds before bundling.


sudo apt-get install libmysqlclient-dev -y

##

An error occurred while installing rmagick (2.13.3), and Bundler cannot
continue.
Make sure that `gem install rmagick -v '2.13.3'` succeeds before bundling.


こちらに従い、
sudo apt-get install libmagick++-dev -y

とりあえず、
"Your bundle is complete!"
と出ればOK。(bug reportについてメッセージが出ましたが。)


#### Redmineの初期設定とデータベースのテーブル作成

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate


#### Passengerのインストールと(apacheへの)設定

Passengerを導入する。
sudo gem install passenger --no-rdoc --no-ri
// 実際には下記のコマンドを使ったのだったか、あるいは両方必要だった気もする。
sudo apt-get install libapache2-mod-passenger -y

導入後、インストールとは別にビルドコマンドを呼ぶ必要があったらしい。
(https://hirooka.pro/?p=6904)
passenger-install-apache2-module
この際、curl-configなどが足りないと言われるので、
sudo apt-get install apache-dev libcurl4-gnutils-dev -y
導入。

passenger-install-apache2-module --snippet
にて、apacheに設定すべき内容を確認。
コマンドで直接、Passenger設定をApache設定ファイルに書き込む。
sudo sh -c " passenger-install-apache2-module --snippet > /etc/apache2/conf-available/passenger.conf"

sudo service apache2 restart


######## 起動

導入方法および導入先ディレクトリは、『パターン2: サブディレクトリでRedmineを実行』を採用。
sudo vim /etc/apache2/conf-enabled/passenger.conf


RackBaseURI /redmine

LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-4.0.49/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /var/lib/gems/1.9.1/gems/passenger-4.0.49
  PassengerDefaultRuby /usr/bin/ruby1.9.1
</IfModule>


として、RackBaseURIさえ追記すれば終了のはずだったのだが。

######apache2リスタート時のエラーメッセージ


AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

こちらにある通り、
sudo gedit /etc/apache2/httpd.conf
ServerName localhost』を追記
で解決。




### 『redmineがディレクトリで見える』問題



 passenger-status
が動いていなかった。

sudo passenger-status

Version : 4.0.49
Date    : 2014-08-23 16:56:42 +0900
Instance: 5702
----------- General information -----------
Max pool size : 6
Processes     : 0
Requests in top-level queue : 0

----------- Application groups -----------



とりあえずconf-enabled/passenger.confに設定を書いて解決。
追記

   PassengerAppRoot /var/www/html/redmine
   DocumentRoot /var/www/html/redmine
   RackBaseURI /redmine
 』
コメントアウト

 #LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-4.0.49/build    out/apache2/mod_passenger.so






Passenger動作確認。

sudo passenger-status 

Version : 4.0.49
Date    : 2014-08-23 18:11:16 +0900
Instance: 10272
----------- General information -----------
Max pool size : 6
Processes     : 2
Requests in top-level queue : 0

----------- Application groups -----------
/var/www/html/redmine#default:
  App root: /var/www/html/redmine
  Requests in queue: 0
  * PID: 10393   Sessions: 0       Processed: 7       Uptime: 32s
    CPU: 3%      Memory  : 48M     Last used: 8s ago
  * PID: 10401   Sessions: 0       Processed: 3       Uptime: 31s
    CPU: 2%      Memory  : 41M     Last used: 8s ago





TIGORA(ティゴラ)のトレッキング シューズ

 TIGORA(ティゴラ)の トレッキング シューズを買いました。 メインの靴がアシックスウォーキングで街歩き用なのですが、これまではこれで高尾山などの軽い山も登っていました。 今回、靴底があまりに摩耗したこともあってアシックスウォーキングを買い替えたのですが、ついでに消耗が激...