整理すると、導入して稼働させたのは以下。
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_tokenRAILS_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』