ksaitoの日記

日々試したことの覚え書き

ubuntu 11.10でredmineを使う

redmine 0.8.4が調子悪いのでバージョンアップを試みようとテストしています。
ubuntu 11.10に環境では、redmineパッケージが複数インスタンスホスティングできるようになっていました。(前回はなかったような...)
セットアップも格段に簡単になっているような気がします。

インストール

必要なパッケージは、多分これだけ

$ sudo apt-get install mysql-server mysql-client
$ sudo apt-get install redmine-mysql
$ sudo apt-get install redmine

設定は、mysqlを選択して接続情報を入力するくらいです。
/usr/share/doc/redmine/README.Debian.gzの「QUICK LAUNCH USING WEBRICK」に従ってパーミッションの設定をするととりあえず動きます。
localhost以外からアクセスする場合には、-bオプションでIPアドレスを指定するとhttp://IP:3000/でアクセスすることができます。

$ cd /usr/share/redmine/
$ mkdir tmp
$ chown www-data:www-data tmp
$ mkdir log
$ touch log/production.log
$ sudo -u www-data X_DEBIAN_SITEID="default" ruby script/server -b 10.10.1.10 webrick -e production
NOTE: SourceIndex.new(hash) is deprecated; From /usr/share/redmine/config/../vendor/rails/railties/lib/rails/vendor_gem_source_index.rb:100:in `new'.
=> Booting WEBrick
=> Rails 2.3.14 application starting on http://10.10.1.10:3000
config.load_paths is deprecated and removed in Rails 3, please use autoload_paths instead
config.load_paths= is deprecated and removed in Rails 3, please use autoload_paths= instead

Apacheへの組み込み

必要なパッケージは以下です。

$ sudo apt-get install apache2
$ sudo apt-get install libapache2-mod-passenger 

DNSサーバにredmine.localというのを登録すると仮想ホストにできます。
/usr/share/doc/redmine/examples/apache2-passenger-host.conf に設定のひな形があるので次のように修正するとApache経由でアクセスできます。

$ diff -u /usr/share/doc/redmine/examples/apache2-passenger-host.conf /etc/apache2/conf.d/apache2-passenger-host.conf 
--- /usr/share/doc/redmine/examples/apache2-passenger-host.conf	2011-08-25 21:36:30.000000000 +0900
+++ /etc/apache2/conf.d/apache2-passenger-host.conf	2012-02-08 22:17:40.739561002 +0900
@@ -1,9 +1,6 @@
 # These modules must be enabled : passenger
-# Configuration for multiple vhosts http://localhost:3000/ and http://localhost:3030/
-# listen the port...
-Listen 3000
-<VirtualHost localhost:3000>
-        # ServerName my.domain.name
+<VirtualHost redmine.local:80>
+        ServerName redmine.local
         # this is the passenger config
         RailsEnv production
         # create a link in /var/lib/redmine/default/passenger to /usr/share/redmine
@@ -17,18 +14,18 @@
         </Directory>
 </VirtualHost>
 
-Listen 3030
-<VirtualHost localhost:3030>
-        # ServerName my.domain.name
-        # this is the passenger config
-        RailsEnv production
-        # create a link in /var/lib/redmine/instance2/passenger to /usr/share/redmine
-        PassengerAppRoot /var/lib/redmine/instance2/passenger
-        SetEnv X_DEBIAN_SITEID "instance2"
-        Alias "/plugin_assets/" /var/cache/redmine/instance2/plugin_assets/
-        DocumentRoot /usr/share/redmine/public
-        <Directory "/usr/share/redmine/public">
-                Order allow,deny
-                Allow from all
-        </Directory>
-</VirtualHost>
+#Listen 3030
+#<VirtualHost localhost:3030>
+#        # ServerName my.domain.name
+#        # this is the passenger config
+#        RailsEnv production
+#        # create a link in /var/lib/redmine/instance2/passenger to /usr/share/redmine
+#        PassengerAppRoot /var/lib/redmine/instance2/passenger
+#        SetEnv X_DEBIAN_SITEID "instance2"
+#        Alias "/plugin_assets/" /var/cache/redmine/instance2/plugin_assets/
+#        DocumentRoot /usr/share/redmine/public
+#        <Directory "/usr/share/redmine/public">
+#                Order allow,deny
+#                Allow from all
+#        </Directory>
+#</VirtualHost>
$ 

Debian固有?

X_DEBIAN_SITEIDという環境変数を使って複数redmineインスタンスホスティングできるようです。
/etc/redmine/$X_DEBIAN_SITEIDに接続情報が記録され、/var/lib/redmine/$X_DEBIAN_SITEIDに添付ファイルが記録されるらしいです。
ログファイルのディレクトリも必要な気がしますが...
そのうち試してみよう。

余談:gemとapt

Rubyのパッケージは、gemでインストールしますが、Debian/Ubuntuの場合、aptでインストールするという選択肢があります。
rubygames、rake、rdoc、passenger何れも、どちらの方法でもインストールできるようで正直混乱します。
aptでインストールするとruby以外の設定(mysqlやPATH)も面倒見てもらえますしredmineのアップグレードもデータベースのマイグレーションは全く意識せずバージョンアップされていました。(メンテナに感謝!!)
混乱するのは、aptでインストールしたrubyパッケージ(rubygems含む)とgemであとからインストールしたパッケージの関係がよくわかりません。
今回も、redmine 0.8.4からのアップグレードを試したいとするとrails 2.1.2が必要となります。
aptでrubygames1.8を入れて、rails 2.1.2を入れた場合、aptで入れたrailsとの関係は...
修行が足りないなぁ