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





Linuxコマンドライン上でSVGベクタ画像をJPG等へラスタライズ変換する

 Linuxコマンドライン上でSVGベクタ画像をJPG等へラスタライズ変換することができるが、上手く変換されない場合がある。   以前作った魔法陣イラスト素材をイラスト素材ストックサイトへ登録しようと思い立ち、改めて素材用にラスタライズ変換をかけようとした。   ラスタライズ変換...