*

RaspbianにRedmine3を導入

公開日: : 投稿者:raru Linux, Raspbian, redmine, サーバ

普段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もないし。
なんかこう、守られている感が減るので心細い。

関連記事

no image

CentOSにSSH鍵認証で接続するGitリポジトリを作成

今回友人と共同開発を行なうと思い、ざっくりとGitサーバを建ててみました。 私はSVNの方が好きな

記事を読む

no image

ZabbixからsSMTPを利用してエラー通知メール送信

今回はsSMTPを利用してRaspbian上のZabbix Serverからアラートメールの送信を行

記事を読む

no image

DDNS(No-IP)をcronで更新

DDNSを利用してzabbix agentを導入できないかと思い、ひとまずDDNSの設定を行いました

記事を読む

no image

Raspbianをwheezyからjessieにアップグレード

2015/04頃にdebianのバージョン8 jessieがリリースされたようです。 それに伴い、

記事を読む

no image

RaspberryPI3にCentOS7をインストール (mac利用)

いつの間にやらRaspberryPI 3が発売し、さらにはCentOSまでもがraspberry p

記事を読む

no image

Raspberry Pi 2(Raspbian) 初期設定

性懲りもせずにRaspberry pi2を購入しました。 初代に比べて相当スペックが向上しており、

記事を読む

no image

CentOS7にウイルスソフト(Clamd)を導入

今回はLinuxのウイルス対策ツールのClamdの導入を行いたいと思います。 Windowsマシン

記事を読む

no image

Firewalldで特定IPからの接続をdrop

このサイトは見ての通りwordpressなのですが、wordpressではloginのurlが推測さ

記事を読む

no image

RedmineからsSMTPでメールを送信

Redmineの管理画面にアクセスしたところメール通知設定は所定のファイルを編集しないとできないよう

記事を読む

no image

Raspbianでメール送信 ssmtp編

Raspbianで監視などをおこなっているとメールが送信したくなります。 とりあえず何かと管理用に

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP ↑