演習の進捗管理
演習の進捗管理に Redmine を使う必要があるか微妙に疑問だし、まだほんとにやるかどうかわからないけど、いっぺん提案してみようと思って Mac OS X Server にインストールしようとしたら、OS が 10.8 (Mountain Lion) になってて MySQL が使えず、いろいろハマったのでメモ。これで正しいのかどうかわからない。多分、どこか間違ってる気がする。
参考
-
[Redmineのインストール Redmine.JP](http://redmine.jp/guide/RedmineInstall/) - RedmineInstallOSXServer - Redmine
- 磁力式駆動: プロジェクト管理ツールRedmineをSQLite3で利用する。
- Redmine を rbenv + ruby-build + bundler + sqlite3 で導入 / 構築する - AtAsAtAmAtArA
- Redmine設定メモ - Wikimura
rubygems の update
標準の rubygems はバージョンが古いみたいだったので最新版にする。
sudo gem install rubygems-update
sudo update_rubygems
gem -v でバージョンを確認しておく。
Passenger のインストール
sudo gem install passenger
sudo passenger-install-apache2-module
- Enter をタイプして先に進める。
- 最後に次のような Apache の設定が表示されるのでコピーしておく (この内容は
passenger-install-apache2-module --snippetで後で参照できる)。
LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-3.0.17
PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
bundler のインストール
bundler を使うと必要な gem を選んでインストールしてくれるみたい。
sudo gem install bundler
Redmine のソースを取得して展開
Web サーバの DocumentRoot 以外にインストールする。DocumentRoot は /etc/apache2/sites/0000_any_80_.conf などで設定されている。
cd <どこか適当なところで>
tar xzf redmine-2.*.*.tar.gz
Redmine で使う gem のインストール
Mountain Lion では MySQL が使えなくなったので、SQLite3 を使うことにする。PostgreSQL でもいいと思うけど。
cd <Redmine のソースを展開した場所>
bundle install --without development test postgresql mysql rmagick
ImageMagick くらい入れておいた方がいいかな。
database.yml ファイルの作成
cp config/database.yml.example config/database.yml
config/database.yml の編集:
production:
adapter: sqlite3
database: db/redmine.db
ディレクトリの作成
mkdir public/plugin_assets
セッションストア秘密鍵の生成
rake generate_secret_token
データベースにテーブルを作成
rake db:migrate RAILS_ENV=production
テスト
WEBrick による Web サーバを起動してテストする。
ruby script/rails server webrick -e production
http://host:3000/を開く。ユーザ名 / パスワードとも admin でログインできる。- admin でログインしたら administration メニューで管理者アカウントを作成する。
- 作成した管理者アカウントでログインし直して admin を削除する。
うまく動いているようだったら WEBrick の Web サーバを Ctrl-C で止める。
DocumentRoot にリンクを張る
本当は Virtual Host を作って、その DocumentRoot にしたほうがいいのかもしれない。
ln -s public <DocumentRoot の場所>/redmine
Apache の設定ファイルを作成する
Passenger の起動と RailsBaseURI の設定、アクセスコントロールなど。
/etc/apache2/passenger.conf
| これは [Redmine 2.1をCentOS 6.3にインストールする手順 | Redmine.JP Blog](http://blog.redmine.jp/articles/redmine-2_1-installation_centos/) を参考にした。 |
# Passengerの基本設定。
# passenger-install-apache2-module --snippet を実行して表示される設定を使用。
# 環境によって設定値が異なりますので以下の3行はそのまま転記しないでください。
#
LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-3.0.17
PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
# Passengerが追加するHTTPヘッダを削除するための設定。
#
Header always unset "X-Powered-By"
Header always unset "X-Rack-Cache"
Header always unset "X-Content-Digest"
Header always unset "X-Runtime"
# 必要に応じてPassengerのチューニングのための設定を追加。
#
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerUseGlobalQueue on
PassengerHighPerformance on
PassengerStatThrottleRate 10
RailsSpawnMethod smart
RailsAppSpawnerIdleTime 86400
RailsFrameworkSpawnerIdleTime 0
RailsBaseURI /redmine
/etc/apache2/redmine.conf
redmine + passenger でのアクセス制限 - ihiro81’s diary を参照のこと。
<Location /redmine>
Order deny,allow
Deny from all
Allow from xxx.xxx.xxx.xxx
</Location>
/etc/apache2/sites/0000_any_80_.conf
以下の設定を追加:
Include /etc/apache2/passenger.conf
Include /etc/apache2/redmine.conf
Redmine の所有者の変更
Redmine を展開したディレクトリ以下の所有者を全部 Apache を実行しているユーザ (_www) に変更する。多分、全部変更する必要はないけど、files, log, tmp, public/plugin_assets と db/* だけではだめだったので。
Apache の再起動
sudo apachectl -k restart
Apache が起動したら http://host/redmine/ を開く。