Docker を使ってより簡単に Redmine 環境をつくる方法もあるので次も check it out !!
手元にあったほうがいいかなと思ったので Redmine をインストール。
個人での使用を前提にしてるので SSL トンネリングなし、メールは飛ばさない。
rbenv を使うので以下を見て設定しておくといい。
インストール場所を決める
/usr/local/redmine にする。
cd /usr/local
mkdir redmine
cd redmine
ソース取得
stable でもインストールがうまくいかないことがあったので github から最新を引っ張ってくる。
git clone https://github.com/redmine/redmine.git .
インストール手順は doc/INSTALL に書いてある。
他にもアップグレード手順が doc/UPGRADING に書いてあったりするので必要に応じて見るといいかもしれない。
Ruby バージョンをあわせる
どうも Redmine 最新でも Ruby 2.1.0 を使えと書いてあるのでそうする。
rbenv install 2.1.0
rbenv rehash
rbenv local 2.1.0
bundler と一緒に passenger もインストールしちゃおう。
gem install bundler passenger
rbenv rehash
MySQL まわりの設定
ここでいったん MySQL 側に移る。インストールしてない場合は以下を参考に。
受け皿になるデータベースとそれを使うユーザーの作成。
mysql -u root -p
CREATE DATABASE redmine CHARACTER SET UTF8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'password for redmine';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
FLUSH PRIVILEGES;
ここから Redmine 側にまた戻る。
MySQL への接続設定を書く。まず database.yml をコピーで作る。
cp config/database.yml.example config/database.yml
作った database.yml の username と password を上記で作ったユーザーのものに書き換える。
アダプターは mysql2 のまま。
必要なもののインストール
gem の rmagick やらで必要なものをインストールする。
brew install imagemagick
必要な gem のインストール。
--without test しないと nokogiri のインストールが走ってめんどくさくなるので Redmine の開発がしたい場合以外は without ったほうがいい。
bundle install --path gems --without development test
DB にデータを流し込む
鍵をつくって migrate 。
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
確認
さて、うまくできたかな ?
ruby script/rails server webrick -e production
エラーがなく立ち上がって、 http://localhost:3000/ で Redmine の画面が見えたら成功。
Apache で立ち上げる設定
Apache 用の passenger モジュールをインストール。
passenger-install-apache2-module
上記で出てきた LoadModule なんたらかんたらを Apache 用の設定ファイルに保存。
sudo vim /etc/apache2/other/passenger.conf
仕上げに Redmine 用の VirtualHost 設定をする。ホスト名は redmine.local にしてみた。
sudo vim /etc/apache2/other/redmine.conf
<VirtualHost *:80>
ServerName redmine.local
DocumentRoot /usr/local/redmine/public/
ErrorLog "/usr/local/redmine/log/error_log"
CustomLog "/usr/local/redmine/log/access_log" common
<Directory /usr/local/redmine/public/>
Require all granted
Options -MultiViews
AllowOverride all
</Directory>
</VirtualHost>
ポイントは Require all granted
。 httpd.conf のほうで Require all denied
してるもんだからこれがないと Forbidden を拝み続ける羽目になる。
っと、 redmine.local を hosts に登録しないとこのままじゃアクセスできない。
sudo vim /etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost redmine.local
255.255.255.255 broadcasthost
::1 localhost redmine.local
fe80::1%lo0 localhost redmine.local
localhost になってるところに追加で redmine.local を書く。
Apache を起動。
sudo apachectl start
http://redmine.local/ にアクセスして Redmine の画面が表示されたら成功。
ログローテーション
仕上げにログローテーションの設定をする。とりあえず設定しただけでまだちゃんと動くか試せてないんだけど。
Apache 用の設定すらないのでそれも一緒に追加してやる。
sudo vim /etc/newsyslog.d/apache2.conf
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
/var/log/apache2/access_log 644 10 1000 * B /var/run/httpd.pid
/var/log/apache2/error_log 644 10 1000 * B /var/run/httpd.pid
sudo vim /etc/newsyslog.d/redmine.conf
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
/usr/local/redmine/log/access_log 644 10 1000 * B /var/run/httpd.pid
/usr/local/redmine/log/error_log 644 10 1000 * B /var/run/httpd.pid
/usr/local/redmine/log/production.log 644 10 1000 * B