プラスα空間

ブログ in お市 のーと

FreeBSD 9.1のApache2.4にRedmineインストール[追記あり]

まぁ、個人でRedmineを使うまでの事も無いのですが、高度なToDoリスト、進捗管理、行動記録として、優秀なソフトなので、導入する事にしました。ですが、初インストールなので、多いに悩みました。そして、何とか、インストールする事ができました。

やった事は、FreeBSD 9.1にRedmineをインストールしただけです。Redmineの表示には、Apache 2.4を使っています。RedmineのデータベースにはMySQLを使い、その設定のために、phpMyAdminをインストールしています。

これだけなのですが、やり方を書いておかないと、次にインストールする時に、自分が困るので、まとめておきます。他の方の参考になれば幸いです。結構、長いです。

  1. Apache 2.4のインストール
  2. fcgid_moduleのインストール
  3. rubygem-mysql2のインストール
  4. MySQLのインストール
  5. PHP5.5のインストール
  6. phpMyAdminのインストール
  7. Redmineのインストール
  8. Redmine用データベース作成
  9. Redmineの設定
    1. configディレクトリ
    2. publicディレクトリ
    3. Gemfile.localの設定 (追記 2015-02-08 20:32)
  10. 初期データの作成
  11. Apache 2.4のRedmine設定
  12. 起動

他のソフトも、別にインストールしているので、過不足があるかもしれません。また、設定が複数箇所に分かれていますが、説明の都合上、ご容赦ください。

1. Apache 2.4のインストール

特に、オプションの変更は無かったと思います。

# cd /usr/ports/www/apache24
# make install clean

ここに書いてある以外に、色々設定してあるのですが、説明しきれません。

2. fcgid_moduleのインストール

Redmineは、dispatch.fcgiと言うCGIスクリプトですべて処理している様です。その為、mod_fcgid.soを使える様にします。

# cd /usr/ports/www/mod_fcgid
# make install clean

自動で追加してくれても良さそうな物ですが、そうならなかったので、httpd.confに追加しました。

# vi /usr/local/etc/apache24/httpd.conf

追加するのは、次の1行です。

LoadModule fcgid_module libexec/apache24/mod_fcgid.so

3. rubygem-mysql2のインストール

Redmineの設定を始めて、言語を日本語に切り替えたら、/usr/local/www/redmine/log/production.logに、次のエラーが出る様になりました。

ActionView::Template::Error (incompatible character encodings: UTF-8 and ASCII-8BIT):

Googleで検索したら、解決方法が見つかりました。

MySQLとのadapterを、mysql2にすれば良いみたいです。探したら見つかったので、インストールしました。

# cd /usr/ports/databases/rubygem-mysql2
# make install clean
# gem list | grep mysql
mysql (2.9.1)
mysql2 (0.3.13)

ちなみに、Redmineのログは、/usr/local/www/redmine/logに残ります。

ありがとうございます。

4. MySQLのインストール

WordPressでもMySQLを使うので、インストールします。

# cd /usr/ports/databases/mysql56-server
# make install clean

5. PHP5.5のインストール

最新バージョンのPHPが使いたくて、PHP5.5にしました。実は、このために、結構大変な思いをしています。一度、古いバージョンのPHPが入ってしまったので、それをアンインストールして、PHP5.5を新規インストールしました。

# cd /usr/ports/lang/php55
# make config-recuresive
# make install clean
# cd /usr/ports/lang/php55-extentions
# make config-recuresive
# make install clean

php55-extentionsの時に、沢山オプションを指定しておかないと、WordPressがまともに動かなかったりするので、注意が必要です。少なくても、GD, MYSQL, MYSQLIとZLIBは必須でしょう。

一応、スナップショットを付けておきますが、これで正しいかどうかはわかりません。

php55-extentions

php55-extentions

6. phpMyAdminのインストール

私は、ヘタレなので、GUIから操作したかったです。

# cd /usr/ports/databases/phpmyadmin
# make config-recursive
# make install clean

オプション設定は、次の様にしました。

phpMyAdmin

専用ファイル(/usr/local/etc/apache24/Includes/phpMyAdmin.conf)を作って、追加しました。

# vi /usr/local/etc/apache24/Includes/phpMyAdmin.conf

設定内容は次の通りです。

Alias /mysql "/usr/local/www/phpMyAdmin/"

# default charset UTF-8
AddDefaultCharset utf-8

# .htaccess setting
AllowOverride All

# SSI OK
# SymbolicLink OK
Options +Includes +FollowSymLinks

# aapche 2.4 change config
Order Deny,Allow
Allow from all
Require all granted

Aliasで設定していますが、シンボリックリンクを作っても大丈夫だと思います。お使いの環境に合わせて変更して下さい。

上記の設定だと、http://www.local.example.com/mysql/にアクセスすると、phpMyAdminが起動します。

7. Redmineのインストール

肝心要のソフトです。

# cd /usr/ports/www/redmine
# make config-recursive
# make install clean

これのオプション設定が重要で、PASSENGERを有効にします。こうする事で、ApacheをRedmineのhttpdにできます。(なんだか、変な表現ですね)

Redmine

8. Redmine用データベース作成

redmine用のユーザで、redmine用のデータベースを作ります。先ほどインストールした、phpMyAdminを使います。

まずは、ユーザの作成からです。

redmine user

「グローバル特権」は、「すべてチェックする」をクリックしておきます。

次に、データベースを作ります。

redmine database

ユーザを作る時に、「ワイルドカード(ユーザ名_%)に該当するデータベースにすべての特権を与える」を選んでいるので、”redmine_db”とすれば、自動的に特権が付きます。

本当は、rootのパスワードの設定等も必要です。次の記事が参考になると思います。

9. Redmineの設定

9.1 configディレクトリの設定

/usr/local/www/redmine/config/database.ymlを作ります。database.yml.exampleがあるのですが、書く量が少ないので、スクラッチで書いても構いません。

production:
adapter: mysql2
database: redmine_db
host: localhost
username: redmine
password: "********"
encoding: utf8

この辺りの設定は、次のページを参考にさせていただきました。ありがとうございます。

また、メールの設定もします。/usr/local/www/redmine/config/configuration.yml.exampleを/usr/local/www/redmine/config/configuration.ymlとしてコピーします。

設定例は、こんな感じだと思います。

# default configuration options for all environments
default:
# Outgoing emails configuration (see examples above)
email_delivery:
delivery_method: :smtp
smtp_settings:
address: smtp.example.com
port: 25
domain: example.com
authentication: :login
user_name: "redmine@example.com"
password: "********"

他にも、設定用のサンプル(テンプレート)があるので、各自の環境に合わせて利用すれば良いと思います。

また、昔は、”email.yml”をメール設定に使っていた様ですが、”configuration.yml”に統合された様です。

9.2 publicディレクトリの設定

/usr/local/www/redmine/public/dispatch.fcgi.exampleを/usr/local/www/redmine/public/dispatch.fcgiにリネームまたは、コピーします。

# cd /usr/local/www/redmine/public
# mv dispatch.fcgi.example dispatch.fcgi

/usr/local/www/redmine/public/htaccess.fcgi.exampleを/usr/local/www/redmine/public/.htaccessにリネームまたは、コピーします。そして、一部修正します。

# cd /usr/local/www/redmine/public
# mv htaccess.fcgi.example .htaccess
# vi .htaccess

修正する部分は、次の所です。

#RewriteRule ^$ index.html [QSA]
#RewriteRule ^([^.]+)$ $1.html [QSA]
#RewriteCond %{REQUEST_FILENAME} !-f

この3行をコメントアウトするだけです。この辺りの設定は、次のページを参考にさせていただきました。ありがとうございます。

9.3 Gemfile.localの設定 (追記 2015-02-08 20:32)

FcgidあるいはFastCGIdを使う時に読み込んでおくgemがあります。最初は、/usr/local/www/redmine/Gemfileに書き足していたのですが、/usr/local/www/redmine/Gemfile.localも読み込んでくれる事がわかりましたので、そちらに書く事にしました。次の1行を追加しておけば大丈夫です。

gem "fcgi"

次のウェブページを参考にしました。ありがとうございます。

10. 初期データの作成

何だかよくわからないのですが次の様にして設定しました。

# cd /usr/local/www/redmine
# bundle install
# rake generate_secret_token
# rake db:migrate RAILS_ENV=production
# rake redmine:load_default_data RAILS_ENV=production

Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] ja
====================================
Default configuration data loaded.

最後に、言語を聞かれるので、”ja”(ダブルクオート無し)と答えます。これに付いても、次のページを参考にさせていただいております。ありがとうございます。

11. Apache 2.4のRedmine設定

Redmine用に、専用ファイルを作りました。

# vi /usr/local/etc/apache24/Includes/redmine.conf

中身は次の様になっています。

LoadModule passenger_module /usr/local/lib/ruby/gems/1.9/gems/passenger/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9/gems/passenger
PassengerDefaultRuby /usr/local/bin/ruby19
DefaultInitEnv RAILS_ENV production

私の場合、RedmineはVirtual hostとして動作させる事にしました。

# vi extra/httpd-vhosts.conf

内容は、次の通りです。


ServerAdmin webmaster@example.com
ErrorLog "/var/log/redmine.local.example.com-error_log"
CustomLog "/var/log/redmine.local.example.com-access_log" common
DocumentRoot /usr/local/www/redmine/public
ServerName redmine.local.example.com
# default charset UTF-8
AddDefaultCharset utf-8

# .htaccess setting
AllowOverride All

# SSI OK
# SymbolicLink OK
Options +Includes +FollowSymLinks +ExecCGI
# MultiViews must be turned off.
Options -MultiViews

# aapche 2.4 change config
Require all granted

それと、/usr/local/etc/apache24/httpd.confの修正が必要です。

LoadModule rewrite_module libexec/apache24/mod_rewrite.so
LoadModule php5_module libexec/apache24/libphp5.so

rewrite_moduleのコメントアウトを外して下さい。それと、php5_moduleをロードする様になっていなかったら、追加して下さい。この辺りの設定も、次のページを参考にさせていただきました。ありがとうございます。

12. 起動

Apacheを再起動します。

# /usr/local/etc/rc.d/apache24 restart

そして、http://redmine.local.example.com/にアクセスします。

Redmine起動

無事、起動画面が現れました。この後に、設定、そして運用が待っています。

Redmine(日本)公式ページの説明が、正確でわかり易いのではないでしょうか?

まじ、疲れました。記事の文字数も、7,000文字を超えました。分割しても良いくらいです。

(追記 2013-08-21 00:02)

Apache 2.4の設定ファイルに余分な記述があったので、削除しました。

(追記 2013-09-15 17:26)

次の事件が起きた時に、MySQLの全データベースを削除しました。

その影響で、Redmineが立ち上がらなくなりました(当たり前)。MySQLデータベースを作り直しても、復旧しません。仕方なく、rubygem-mysql2の再インストールからやり直したら、復旧できました。この記事の様に、やった事を記録に残しておくって、大事ですね。

(追記 2014-05-31 20:54)

enerate_session_storeを実行すると、次のメッセージが出るので、本文をgenerate_secret_tokenに変更しました。

# rake generate_session_store

Note: The rake task generate_session_store has been deprecated, please use the replacement version generate_secret_token

参考にしたWebは、次の所だったと思います。ありがとうございます。

(追記 2015-02-08 22:46)

FastCGIに変更しました。

FreeBSD 9.1のApache2.4にRedmineインストール[追記あり]”に“2”個のコメント

コメントを残す