debian に Redmine をインストールしてみた

docker コンテナに Redmine を入れたメモです。
メールを送信するところはやってません。
インストールに四苦八苦して Redmine で何をしようとしていたかは忘れました。

この時の各種バージョンは次の通りです。

次のサイトを参考にしています。

qiita.com

Redmine のインストール

準備

docker コンテナを起動します。
ホストの 8080 ポートからコンテナの 80 ポートを見に行く様にします。

$ docker -i -p 8080:80 -t debian bash

必要に応じて MySQL のデータ格納ディレクトリをローカルにバインドするなどしてください。
コンテナが起動したら Ruby と、その他 Gem 等で使われるパッケージをインストールします。

apt-get udpate
apt-get install ruby ruby-dev
apt-get install git vim
apt-get install build-essential
apt-get install imagemagick libmagickcore-dev libmagickwand-dev
apt-get install libcurl4-openssl-dev apache2-threaded-dev libapr1-dev libaprutil1-dev libssl-dev

MySQLApache のインストール

要になる2つのサービスをインストールします。

# apt-get install mysql-server libmysqlclient-dev apache2

後で使う rake が gem の mysql2 0.3系じゃないとインストールされていると認識しないのでバージョン指定でインストールしました。

# gem install mysql2 -v 0.3.20
# service apache2 start
# service mysql start

Redmine のインストール

git からソースを取得して /usr/lib/ 以下に配置します。

# cd /tmp
# git clone https://github.com/redmine/redmine.git redmine
# mv redmine /usr/lib/

bundler で必要な gem をインストールします。
データベースは MySQL なので PostgreSQLSQLite 関係を入れないようにオプションを入れておきます。

# cd /usr/lib/redmine/
# gem install bundler --no-rdoc --no-ri
# bundle install --without development test postgresql sqlite

パーミッション等を変更します。

# cd ../
# chown www-data:www-data -R /usr/lib/redmine
# cd redmine/
# chmod -R 755 files/ log/ tmp/ public/plugin_assets/

データベースの設定を行います。
ユーザ名やパスワード部分については適宜読み替えてください。root ユーザーのままでも動くようです。

# mysql --user=root --password=password --execute="create database redmine character set utf8;"
# mysql redmine -p
mysql> create user 'redmine'@'localhost' identified by 'my_password';
mysql> grant all privileges on redmine.* to 'redmine'@'localhost';
mysql> \q

Redmine から MySQL へ接続する設定を YAML に記録しておきます。

# vi /usr/lib/redmine/config/database.yml

中身は次のような感じで。

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: my_password
  encoding: utf8

トークンの作成などを行って Redmine セットアップの完了します。

# rake generate_secret_token
# RAILS_ENV=production rake db:migrate

Apache の設定

まずは passenger をインストールしておきます。

# gem install passenger --no-rdoc --no-ri
# passenger-install-apache2-module -a

passenger-install-apache2-module はオプション無しで実行するとセットアップする言語等の設定ができますが、対話式 UI からコンパイルに抜けられなかったのでオートで実行するオプションを付けました。
流れて来るログの中に設定例が表示されるので、/etc/apache2/conf-enabled/passenger.conf に書き込みます。

# vi /etc/apache2/conf-enabled/passenger.conf

今回はこんな感じの内容でした。

   LoadModule passenger_module /var/lib/gems/2.1.0/gems/passenger-5.0.20/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /var/lib/gems/2.1.0/gems/passenger-5.0.20
     PassengerDefaultRuby /usr/bin/ruby2.1
   </IfModule>

passenger によって実行する RoR のディレクトリを指定しておきます。 DocumentRoot の下の行あたりに追加すればいいようです。

# vi /etc/apache2/sites-available/000-default.conf
    RackBaseURI /redmine

ドキュメントルートの中に Redmine へのシンボリックリンクを張って完了

# cd /var/www/html
# ln -s /usr/lib/redmine/public ./redmine
# serviec apache2 restart

別のマシンから docker ホスト IP の 8080 ポート へアクセスすれば Apache の実行確認画面が表示され、 ~/redmine にアクセスすると Redmine が現れました。

Redmine で何を管理しようとしてたんだっけなぁ…。