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