RaspbianにRedmine3を導入

普段Zabbixを入れて運用しいてるRaspbianにRedmineも入れてみました。
ややスペック不足になるかもしれないなと感じながら、まぁ使えると言っていいレベルには動いています。

Rubyのインストール

Raspianではデフォルトでruby1.9あたりがインストールされていますが、せっかくなので最新のrubyを入れてみます。
元々スペックも低いのでできるだけ最新のrubyを入れたいですよね。

もはやおなじみですがrbenvを導入します。
またRubyのインストールにはそれなりに時間がかかります。CPUにはヒートシンクをつけていますが、それでも45℃くらいまで温度が上がっていたので室温は多少気にした方がいいかもしれません。

root@raspberrypi:~# aptitude install git libssl-dev libreadline-dev  
root@raspberrypi:~# git clone https://github.com/sstephenson/rbenv.git /usr/local/rbenv  
...  
Checking connectivity... done.  
root@raspberrypi:~# git clone https://github.com/sstephenson/ruby-build.git /usr/local/rbenv/plugins/ruby-build  
...  
Checking connectivity... done.  
root@raspberrypi:~# vi /etc/profile.d/rbenv.sh  
root@raspberrypi:~# cat /etc/profile.d/rbenv.sh   
export RBENV_ROOT="/usr/local/rbenv"  
export PATH="${RBENV_ROOT}/bin:${PATH}"  
eval "$(rbenv init -)"  
  
# shell再読み込み  
root@raspberrypi:~# exec $SHELL -l  
root@raspberrypi:~# rbenv install --list  
root@raspberrypi:~# CONFIGURE_OPTS="--disable-install-doc" rbenv install 2.2.3  
root@raspberrypi:~# rbenv versions  
* system (set by /usr/local/rbenv/version)  
  2.2.3  
root@raspberrypi:~# rbenv global 2.2.3  
root@raspberrypi:~# ruby -v  
ruby 2.2.3p173 (2015-08-18 revision 51636) [armv7l-linux-eabihf]  
root@raspberrypi:~# vi ~/.gemrc  
root@raspberrypi:~# cat ~/.gemrc   
gem: --no-rdoc --no-ri  

rbenvのlistで確認したところ、今の最新が2.2.3だったのでそれを導入しました。
redmineが導入できないと困るので一応確認はしていますが、2.2系でも問題なく動くようです。

Redmineの導入

続いてRedmineを導入していきます。
apt-get系のパッケージにはredmineが入っているらしいので、apt-get install redmineでも導入できるみたいですが、なんか嫌なのでwgetで取得しています。

例によってbundle installには結構時間がかかります。

# 必要なパッケージインストール  
root@raspberrypi:~# aptitude install imagemagick libmagick++-dev libmysqld-dev  
root@raspberrypi:~# cd /var/www/public  
root@raspberrypi:/var/www/public# wget http://www.redmine.org/releases/redmine-3.1.1.tar.gz  
root@raspberrypi:/var/www/public# tar zxvf redmine-3.1.1.tar.gz  
root@raspberrypi:/var/www/public# cd redmine-3.1.1  
  
# DB作成  
root@raspberrypi:/var/www/public/redmine-3.1.1# mysql -u root -p  
mysql> CREATE DATABASE redmine CHARACTER SET utf8;  
mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'N)VMD8ykhrdT';  
mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';  
mysql> quit  
Bye  
  
# DB接続設定を記載  
root@raspberrypi:/var/www/public/redmine-3.1.1#cp config/database.yml.example config/database.yml  
root@raspberrypi:/var/www/public/redmine-3.1.1# vi config/database.yml  
root@raspberrypi:/var/www/public/redmine-3.1.1# diff config/database.yml.example config/database.yml  
9,10c9,10  
<   username: root  
<   password: ""  
---  
>   username: hogehoge  
>   password: "fugafuga"  
root@raspberrypi:/var/www/public/redmine-3.1.1# gem install bundler  
root@raspberrypi:/var/www/public/redmine-3.1.1# bundle install --without development test  
root@raspberrypi:/var/www/public/redmine-3.1.1# rake generate_secret_token  
/usr/local/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465: warning: duplicated key at line 466 ignored: "inodot"  
root@raspberrypi:/var/www/public/redmine# RAILS_ENV=production rake db:migrate  

ここまでを行うことで、一旦Redmineのインストールまでは完了です。
Railsのインストールはbundle installの場所で行われているということですね。

Passengerインストール

次はApacheを介してRedmineへ接続するためにpassengerを導入します。
これもいくつか導入方法があるようですが、いつもやり方で行っていきたいと思います。

またこちらも同じく時間がかかります。

root@raspberrypi:/var/www/public/redmine-3.1.1# gem install passenger --no-rdoc --no-ri  
# passengerの導入に必要なパッケージインストール  
root@raspberrypi:/var/www/public/redmine-3.1.1# aptitude install install -y libcurl4-openssl-dev apache2-threaded-dev libapr1-dev libaprutil1-dev  
root@raspberrypi:/var/www/public/redmine-3.1.1# passenger-install-apache2-module  
Use <space> to select.  
If the menu doesn't display correctly, press '!'  
  
   ⬢  Ruby  
 ‣ ⬡  Python  
   ⬡  Node.js  
   ⬡  Meteor  
(省略)  
Phusion Passenger is a registered trademark of Hongli Lai & Ninh Bui.  

途中で、「Please edit your Apache configuration file, and add these lines:」この出力とともに今後利用する設定ファイルへの記述内容が表示されるのでコピーしておきましょう。

今回はRuby以外を導入するつもりもないのでPythonのチェックを外しました。

Apache サイト設定追加

最後に公開するためにapacheに設定を追加します。

root@raspberrypi:~# chown -R www-data:www-data /var/www/public  
root@raspberrypi:~# ln -s /var/www/public/redmine-3.1.1 /var/www/public/redmine  
# passenger用設定を追加  
root@raspberrypi:~# vi /etc/apache2/conf-available/passenger.conf  
root@raspberrypi:~# cat /etc/apache2/conf-available/passenger.conf  
LoadModule passenger_module /usr/local/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/passenger-5.0.21/buildout/apache2/mod_passenger.so  
<IfModule mod_passenger.c>  
  PassengerRoot /usr/local/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/passenger-5.0.21  
  PassengerDefaultRuby /usr/local/rbenv/versions/2.2.3/bin/ruby  
</IfModule>  
  
# redmine用バーチャルホスト設定追加  
root@raspberrypi:~# cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/redmine.conf  
root@raspberrypi:~# vi /etc/apache2/sites-available/redmine.conf   
root@raspberrypi:~# cat /etc/apache2/sites-available/redmine.conf   
<VirtualHost *:80>  
        ServerName yourdomain.com  
        ServerAdmin root@localhost  
    DocumentRoot /var/www/public/redmine/public  
  
    ErrorLog ${APACHE_LOG_DIR}/redmine/redmine-error.log  
    CustomLog ${APACHE_LOG_DIR}/redmine/redmine-access.log combined  
  
        <Directory /var/www/public/redmine/public>  
            Options FollowSymLinks  
            AllowOverride None  
        </Directory>  
</VirtualHost>  
  
# ログ出力フォルダ作成  
root@raspberrypi:~# mkdir /var/log/apache2/redmine  
root@raspberrypi:~# chown -R www-data:www-data /var/log/apache2/redmine  
# 設定の有効化  
root@raspberrypi:~# a2enconf passenger  
root@raspberrypi:~# a2ensite redmine  
root@raspberrypi:/var/www/public# vi /etc/hosts  
root@raspberrypi:/var/www/public# cat /etc/hosts | grep redmine  
127.0.0.1       redmine  
root@raspberrypi:/var/www/public# systemctl restart apache2  
root@raspberrypi:/var/www/public# systemctl status apache2  
● apache2.service - LSB: Apache2 web server  
   Loaded: loaded (/etc/init.d/apache2)  

今回は /var/www/public 以下にRedmine用のフォルダを作成しています。
redmineに対してシンボリックリンクを張っているのは、今後redmineのバージョンをあげるときにリンクの貼り直しで済ませるためです。

あとはブラウザから接続を行い動作確認をしてみてください。
デフォルトのログインID/PWはadmin, adminでした。

あとがき

毎回思いますがRailsの導入には時間がかかりますね。
raspberry piでは普段と違ってCPU温度が気になります。自分はwatchコマンドを使って温度を眺めたりするのですが、そういう数字が常に変動するものをみているのが好きなのでずっと見てしまいます。
有意義に時間使うのであれば技術書でも読むとちょうどいいんでしょうね。

あともしかしてRaspbianというかDebianにはSElinuxはないのでしょうか?
簡単にしか調べてませんが、特に見当たらないですね。audit logもないし。
なんかこう、守られている感が減るので心細い。