てきとうなメモ

本の感想とか技術メモとか

apache2 + thinでRedmineを構築

Redmineのバージョンは2.3.3

bundlerのインストール

$ sudo gem install bundler

依存gemのインストール

$ cd path/to/redmine
$ sudo bundle install --without development test

データベースの作成

$ mysql -u root -p
mysql> CREATE DATABASE redmine CHARACTER SET utf8;
mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

database.ymlの修正

$ sudo cp config/database.yml.example config/database.yml
$ sudo vi config/database.yml
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "password"
  encoding: utf8

トークンの生成

$ sudo rake generate_secret_token

スキーマの生成

$ sudo RAILS_ENV=production rake db:migrate

アクセス権の設定。redmineをappユーザで実行するので、書き込めるようにする。

$ sudo chown -R app:app files log tmp public/plugin_assets
$ sudo chmod -R 755 files log tmp public/plugin_assets

thinのインストール

$ sudo apt-get install thin

thinの設定ファイルを修正

$ sudo vi /etc/thin1.9.1/redmine.yml

appユーザで起動し、prefixを/redmineにする

---
chdir: /path/to/redmine
environment: production
address: 127.0.0.1
port: 3000
timeout: 30
log: log/thin.log
pid: tmp/pids/thin.pid
max_conns: 1024
max_persistent_conns: 512 
require: []
wait: 30
daemonize: true
prefix: /redmine
user: app 
group: app 

apache2の設定で、apahce2の/redmine→thinの/redmineにproxyする

$ sudo vi /etc/apache2/conf.d/redmine.conf
<Location /redmine>
  ProxyPass http://localhost:3000/redmine
  ProxyPassReverse http://localhost:3000/redmine
</Location>

このままだとjavascriptcssのパスが/以下に置かれるので、redmineにprefixを教える。

$ sudo vi config/environment.rb 
...
# Initialize the rails application
RedmineApp::Application.initialize!

Redmine::Utils::relative_url_root = "/redmine"

あとはサーバの再起動

$ sudo service apache2 restart
$ sudo service thin restart