ライン

ポイント:高機能だけど、依存するパッケージは多い

ライン

 環境準備

 結構前に、Redmineは導入だけしたみたことがあったけれど、最近は職場で使っているみたいなので、自分でも使ってみて慣れることにしました。でも、Linuxの環境を動かして使う方が慣れていないので、それはパスして仮想にFreeBSDを入れて導入をすることにしました。

 今回は、Windows7上のVMware Player上にFreeBSD 9.2-RELEASEを入れて使います。
面倒なので、FreeBSDのインストールメモ部分はおおよそ割愛します。

KVMの導入時のように、のろのろということはありませんでした。
これぐらいじゃないと使う気にならないです。
あっという間に導入完了です。
これぐらいじゃないと使う気にはならないです。

 次は、パッケージ関連。毎度でportupgradeを導入します。

192.168.184.0/24のNATな環境になったみたいです。
ローカルからのみでしか使わないし、今回はこれで良しとしました。
SSHで利用開始できました。

何秒で終わったんだろうと思うほど、すぐに完了しました。
もうportsをコンパイルしまくる時代じゃないのかも知れないな。
www/apache24 も続けて導入しました。

# pkg_add -r apache24

 でも、この後はのんびりとportsで確認していこうと思います。
一応、portsを最新化しておきます。

# portsnap fetch
# portsnap extract

 余計に仮想化ツールで悩んでいるよりも本当に楽です。VirtulaBoxよりもずっと早いな。
確認だけなら、VMPlayerに限るなぁと思いました。

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

 以下のような画面から開始します。
Apacheを使わずに、ポート3000でデーモン起動するなら、Passengerなどは不要です。
そこそこコンパイルも時間がかかりますので、これ以降は画面確認なしで先に進むようにして置いた方がベターだと思います。
以下のようにすれば良いです。

# make config-recursive

Redmineのconfig画面は以下の通りです。

 適当に放置しておくと導入は終わっていました。

=============================================================================

Redmine was installed.

You now need to setup your Redmine installation so
please have a look at the Installation Guide.

http://www.redmine.org/wiki/redmine/RedmineInstall


If you are upgrading please read the Upgrading Guide
before starting the new version.

http://www.redmine.org/wiki/redmine/RedmineUpgrade

=============================================================================
===>   Registering installation for redmine-2.3.2

 なんとか終わりました。

次に、www/mod_fcgidを入れます。これもportsで一緒に面倒見てくれればいいのにと思うのですが。

#cd /usr/ports/www/mod_fcgid
# make install clean
************************************************************
To enable this module, add something like the following
lines to your server configuration file:

  LoadModule fcgid_module libexec/apache24/mod_fcgid.so

  <IfModule mod_fcgid.c>
    AddHandler fcgid-script .fcgi
  </IfModule>

If you are upgrading from mod_fcgid 2.2, you have to rename
the directives you have used in the config files:
http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#upgrade
************************************************************

 …ということなので、上記を追記します。

さらに次は、MySQLのサーバ。クライアントは既に導入されていました。

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

 /etc/rc.conf に以下を加えます。

apache24_enable="YES"
mysql_enable="YES"

サービスをあげて問題ないことを確認します。

 make cleanを入れていたはずなのに、効いていなかったみたいで、以下を入れました。

#make clean
===>  Cleaning for ruby-1.9.3.448,1
===>  Cleaning for ruby19-iconv-1.9.3.448,1
===>  Cleaning for rubygem-rake-10.0.4
===>  Cleaning for rubygem-rubytree-0.8.3
===>  Cleaning for rubygem-i18n-0.6.1,2
===>  Cleaning for rubygem-bundler-1.3.5
===>  Cleaning for rubygem-rails-3.2.13
===>  Cleaning for rubygem-rack-openid-1.3.1
===>  Cleaning for rubygem-coderay-1.1.0
===>  Cleaning for rubygem-fastercsv-1.5.5
===>  Cleaning for rubygem-builder-3.0.4
===>  Cleaning for rubygem-mysql2-0.3.13
===>  Cleaning for rubygem-rmagick-2.13.2
===>  Cleaning for rubygem-passenger-4.0.19
===>  Cleaning for libffi-3.0.13
===>  Cleaning for libyaml-0.1.4_2
===>  Cleaning for libexecinfo-1.1_3
===>  Cleaning for ruby19-gems-1.8.25
===>  Cleaning for rubygem-structured_warnings-0.1.4
===>  Cleaning for rubygem-json-1.8.0
===>  Cleaning for rubygem-activesupport-3.2.13
===>  Cleaning for rubygem-activerecord-3.2.13
===>  Cleaning for rubygem-actionpack-3.2.13
===>  Cleaning for rubygem-actionmailer-3.2.13
===>  Cleaning for rubygem-activeresource-3.2.13
===>  Cleaning for rubygem-railties-3.2.13_1
===>  Cleaning for rubygem-sass-rails-3.2.6_1
===>  Cleaning for rubygem-coffee-rails-3.2.2_1
===>  Cleaning for rubygem-jquery-rails-3.0.1
===>  Cleaning for rubygem-sqlite3-1.3.7
===>  Cleaning for rubygem-uglifier-2.1.1
===>  Cleaning for rubygem-treetop-1.4.14
===>  Cleaning for rubygem-tzinfo-0.3.37
===>  Cleaning for rubygem-rack-1.4.5,3
===>  Cleaning for rubygem-rack-test-0.6.2
===>  Cleaning for node-0.10.19
===>  Cleaning for ruby19-fcgi-0.8.8
===>  Cleaning for rubygem-turn-0.9.6
===>  Cleaning for rubygem-openid-2.2.3
===>  Cleaning for ImageMagick-nox11-6.8.0.7_1
===>  Cleaning for rubygem-fastthread-1.0.7
===>  Cleaning for rubygem-daemon_controller-1.1.4
===>  Cleaning for libeio-4.18.0
===>  Cleaning for libev-4.15,1
===>  Cleaning for curl-7.32.0
===>  Cleaning for pkgconf-0.9.3
===>  Cleaning for rubygem-multi_json-1.7.7
===>  Cleaning for rubygem-activemodel-3.2.13
===>  Cleaning for rubygem-arel-3.0.2,1
===>  Cleaning for rubygem-erubis-2.7.0
===>  Cleaning for rubygem-journey-1.0.4
===>  Cleaning for rubygem-rack-cache-1.2
===>  Cleaning for rubygem-sprockets-2.2.2
===>  Cleaning for rubygem-mail-2.5.4,1
===>  Cleaning for rubygem-thor-0.18.1
===>  Cleaning for rubygem-rack-ssl-1.3.3
===>  Cleaning for rubygem-sass-3.2.9
===>  Cleaning for rubygem-coffee-script-2.2.0_1
===>  Cleaning for swig13-1.3.40
===>  Cleaning for sqlite3-3.8.0.2
===>  Cleaning for rubygem-execjs-1.4.0
===>  Cleaning for rubygem-polyglot-0.3.3
===>  Cleaning for python27-2.7.5_3
===>  Cleaning for python-2.7_1,2
===>  Cleaning for fcgi-devkit-2.4.0
===>  Cleaning for rubygem-ansi-1.4.3
===>  Cleaning for rubygem-minitest-5.0.6
===>  Cleaning for rubygem-yadis-0.3.4
===>  Cleaning for ghostscript9-nox11-9.06_4
===>  Cleaning for jpeg-8_4
===>  Cleaning for png-1.5.17
===>  Cleaning for tiff-4.0.3
===>  Cleaning for liblqr-1-0.4.1_5
===>  Cleaning for fftw3-3.3.3_1
===>  Cleaning for libfpx-1.3.1.3
===>  Cleaning for jbigkit-1.6
===>  Cleaning for jasper-1.900.1_12
===>  Cleaning for lcms2-2.5
===>  Cleaning for freetype2-2.5.0.1
===>  Cleaning for webp-0.3.1_1
===>  Cleaning for fontconfig-2.10.95,1
===>  Cleaning for libwmf-nox11-0.2.8.4_10
===>  Cleaning for libltdl-2.4.2_1
===>  Cleaning for automake-1.14
===>  Cleaning for ca_root_nss-3.15.1_1
===>  Cleaning for rubygem-json_pure-1.7.7
===>  Cleaning for rubygem-abstract-1.0.0_1
===>  Cleaning for rubygem-tilt-1.4.1
===>  Cleaning for rubygem-hike-1.2.3
===>  Cleaning for rubygem-mine-types-1.23
===>  Cleaning for rubygem-coffee-script-source-1.6.3
===>  Cleaning for python2-2_1
===>  Cleaning for libidn-1.28_1
===>  Cleaning for jbig2dec-0.11_1
===>  Cleaning for libpaper-1.1.24_1
===>  Cleaning for cups-image-1.5.4_1
===>  Cleaning for svgalib-1.4.3_6
===>  Cleaning for gsfonts-8.11_6
===>  Cleaning for glib-2.36.3
===>  Cleaning for unzip-6.0_1
===>  Cleaning for giflib-nox11-4.2.3
===>  Cleaning for libxml2-2.8.0_2
===>  Cleaning for automake-wrapper-20130530
===>  Cleaning for cups-client-1.5.4_1
===>  Cleaning for redmine-2.3.2

 何が入ったかを確認ができました。

次に設定ファイルを作成することにしました。

#cd /usr/local/www/redmine/config
#cp database.yml.example database.yml

 MySQLの初期設定を忘れていたので作業してしまいます。

# mysqladmin -u root password PASSWORD
# mysql -u root -p
mysql>  create database redmine character set utf8;
Query OK, 1 row affected (0.00 sec)

mysql> create user 'redmine'@'localhost' identified by 'PASSWORD';
Query OK, 0 rows affected (0.01 sec)

mysql> grant all privileges on redmine.* to 'redmine'@'localhost';
Query OK, 0 rows affected (0.00 sec)

ここで、database.ymlにパスワードの記述を加えます。最後にパーミッションを変更しました。

#cd /usr/local/www/redmine/public
#ll
total 48
-r--r--r--  1 root  wheel   485 Jul 15 01:51 404.html
-r--r--r--  1 root  wheel   674 Jul 15 01:51 500.html
-r--r--r--  1 root  wheel   473 Jul 15 01:51 dispatch.fcgi.example
-r--r--r--  1 root  wheel  7886 Jul 15 01:51 favicon.ico
drwxr-xr-x  2 root  wheel   512 Jul 15 01:51 help/
-r--r--r--  1 root  wheel  1441 Jul 15 01:51 htaccess.fcgi.example
drwxr-xr-x  4 root  wheel  2560 Jul 15 01:51 images/
drwxr-xr-x  4 root  wheel   512 Jul 15 01:51 javascripts/
drwxrwxr-x  2 root  www     512 Oct 12 23:09 plugin_assets/
drwxr-xr-x  3 root  wheel   512 Jul 15 01:51 stylesheets/
drwxr-xr-x  4 root  wheel   512 Jul 15 01:51 themes/
#cp dispatch.fcgi.example dispatch.fcgi
#cp htaccess.fcgi.example .htaccess

.htaccessは、3行をコメントにしました。該当箇所は他の方のページで確認してください。
 コマンドいくつかを投入。bundle installは不要と思ったけど、後で fcgiしたくて。

#cd ..
#bundle install
Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Installing rake (10.1.0)
Using i18n (0.6.1)
Installing multi_json (1.8.1)
Using activesupport (3.2.13)
Using builder (3.0.4)
Using activemodel (3.2.13)
Using erubis (2.7.0)
Using journey (1.0.4)
Using rack (1.4.5)
Using rack-cache (1.2)
Using rack-test (0.6.2)
Using hike (1.2.3)
Using tilt (1.4.1)
Using sprockets (2.2.2)
Using actionpack (3.2.13)
Installing mine-types (1.25)
Using polyglot (0.3.3)
Installing treetop (1.4.15)
Using mail (2.5.4)
Using actionmailer (3.2.13)
Using arel (3.0.2)
Installing tzinfo (0.3.38)
Using activerecord (3.2.13)
Using activeresource (3.2.13)
Using bundler (1.3.5)
Installing coderay (1.0.9)
Using rack-ssl (1.3.3)
Using thor (0.18.1)
Using railties (3.2.13)
Installing jquery-rails (3.0.4)
Using mysql2 (0.3.13)
Installing net-ldap (0.3.1)
Installing ruby-openid (2.3.0)
Installing rack-openid (1.4.0)
Using rails (3.2.13)
Using rmagick (2.13.2)
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
#rake generate_session_store

Note: The rake task generate_session_store has been deprecated, please use the replacement version 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.

 この後は、httpd.confに追記を入れます。先ほどに同様です。

#pkg_info -aI | grep fcgi
ap24-mod_fcgid-2.3.7 Alternative FastCGI module for Apache2
fcgi-devkit-2.4.0   FastCGI Development Kit
ruby19-fcgi-0.8.8   FastCGI library for Ruby
# vi /usr/local/www/redmine/Gemfile ※追記
gem "fcgi", "0.8.8"
#gem install fcgi
Fetching: fcgi-0.9.2.1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed fcgi-0.9.2.1
1 gem installed
Installing ri documentation for fcgi-0.9.2.1...
Installing RDoc documentation for fcgi-0.9.2.1...

現状が不足が無いかを確認します。

# bundle show
Gems included by the bundle:
  * actionmailer (3.2.13)
  * actionpack (3.2.13)
  * activemodel (3.2.13)
  * activerecord (3.2.13)
  * activeresource (3.2.13)
  * activesupport (3.2.13)
  * arel (3.0.2)
  * builder (3.0.4)
  * bundler (1.3.5)
  * coderay (1.0.9)
  * erubis (2.7.0)
  * fcgi (0.8.8)
  * hike (1.2.3)
  * i18n (0.6.1)
  * journey (1.0.4)
  * jquery-rails (3.0.4)
  * mail (2.5.4)
  * mime-types (1.25)
  * multi_json (1.8.1)
  * mysql2 (0.3.13)
  * net-ldap (0.3.1)
  * polyglot (0.3.3)
  * rack (1.4.5)
  * rack-cache (1.2)
  * rack-openid (1.4.0)
  * rack-ssl (1.3.3)
  * rack-test (0.6.2)
  * rails (3.2.13)
  * railties (3.2.13)
  * rake (10.1.0)
  * rmagick (2.13.2)
  * ruby-openid (2.3.0)
  * sprockets (2.2.2)
  * thor (0.18.1)
  * tilt (1.4.1)
  * treetop (1.4.15)
  * tzinfo (0.3.38)

Apacheのhttpd.confに追加するものを以下の通りです。
4行目はあっても無くても同じでした。

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

 その後、apacheは再起動しておきます。

#ln -s /usr/local/www/redmine/public/ /usr/local/www/apache24/data/redmine

上記の設定以前に実は試行錯誤はありました。

.htaccessが見えん!というので、このあたりは修正。それにしても"Internal Server Error"だと表示される。
ログを見ると、

[core:alert] [pid 9469] [client ] /usr/local/www/apache24/data/redmine/.htaccess: 
Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration

とか。httpd.confでは、初期無効なんですね。

#LoadModule rewrite_module libexec/apache24/mod_rewrite.so

上記をコメントを外し、修正。
しかしながら、まだエラー。

[Sat Oct 12 23:57:35.810301 2013] [fcgid:warn] [pid 9538] (53)Software caused connection abort: 
[client] mod_fcgid: error reading data from FastCGI server
[Sat Oct 12 23:57:35.810882 2013] [core:error] [pid 9538] [client ] End of script output before headers: dispatch.fcgi

少し対処。

#pkg_info -aI | grep fcgi
ap24-mod_fcgid-2.3.7 Alternative FastCGI module for Apache2
fcgi-devkit-2.4.0   FastCGI Development Kit
ruby19-fcgi-0.8.8   FastCGI library for Ruby
# vi /usr/local/www/redmine/Gemfile ※追記
gem "fcgi", "0.8.8"
#gem install fcgi
Fetching: fcgi-0.9.2.1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed fcgi-0.9.2.1
1 gem installed
Installing ri documentation for fcgi-0.9.2.1...
Installing RDoc documentation for fcgi-0.9.2.1...

これでも解消せず。Apacheを使わずに利用できるかを確認する

#ruby /usr/local/www/redmine/script/rails server webrick -e production
Could not find gem 'fcgi (= 0.8.8) ruby' in the gems available on this machine.
Run `bundle install` to install missing gems.

…ということでやり直しです。コマンドを入れ直します。

#ruby /usr/local/www/redmine/script/rails server webrick -e production
=> Booting WEBrick
=> Rails 3.2.13 application starting in production on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2013-10-13 00:28:16] INFO  WEBrick 1.3.1
[2013-10-13 00:28:16] INFO  ruby 1.9.3 (2013-06-27) [amd64-freebsd9]
[2013-10-13 00:28:16] INFO  WEBrick::HTTPServer#start: pid=9904 port=3000
Started GET "/" for 192.168.184.1 at 2013-10-13 00:29:06 +0900
Processing by WelcomeController#index as HTML
  Current user: anonymous
  Rendered welcome/index.html.erb within layouts/base (316.2ms)
Completed 200 OK in 587ms (Views: 386.6ms | ActiveRecord: 21.8ms)

上記のような感じでつっこんで、http://192.168.184.128:3000/ にアクセスする分には問題なし。
以下のような画面も確認できる。Apache連動だけうまくいっていないようだ。

ログをよく見たら、以下のように出ていた。

/usr/local/lib/ruby/site_ruby/1.9/rubygems/custom_require.rb:36:in `require': cannot load such file
        -- /usr/local/www/apache24/data/redmine/../config/boot (LoadError)
        from /usr/local/lib/ruby/site_ruby/1.9/rubygems/custom_require.rb:36:in `require'
        from /usr/local/www/apache24/data/redmine/dispatch.fcgi:3:in `<main>'

Rubyのエラーログは相変わらずでわからないです。
ロードできない理由が理解できていない。
この時点では、httpd.confに「RailsBaseURI /redmine」をhttpd.confに入れたら解消。
アクセスできるようになりました。でも、

のように、スタイルシートの効いていない画面になってしまった。表示はするものの、ログにはこれまで同様のエラーが残っている。
ん?ちなみに、作成した .htaccessを削除(つくらない)すれば、普通に見えるな。そんな感じだ。
以下、作成完了時のextra/httpd-vhosts.confでした。

<VirtualHost *:80>
    PassengerAppRoot /usr/local/www/redmine
    RailsBaseURI /redmine
    RailsEnv production

<Directory "/usr/local/www/redmine/public">
     AddDefaultCharset utf-8
    Options +Includes +FollowSymLinks +ExecCGI
    Order allow,deny
  Require all granted
</Directory>
</VirtualHost>

 それにしても、それ以前にログに以下が出まくり。

PassengerWatchdog (cleaning up...): environment corrupt; missing value for (cleaning up...)

検索して、

#portinstall shells/bash
#ln -s /usr/local/bin/bash /bin/bash

やってみたけど解消しない。まぁ、これは無視でいいことにしました。

 まとめ

 仮想で作り試しましたが、ちょっと重い感じでした。
お試しするにはいいかも知れません。

 インストールは時間が十分あるときに実施して後は設定を楽しむ、で良さそうでした。


【改訂履歴】作成:2013/10/10  改訂: 2013/10/13
【参考リンク】

HowTo configure Apache to run Redmine - Redmine
configuration.ymlの設定項目 ? Redmine.JP
FreeBSD Redmineのインストール - わすれないうちにメモしよう
FreeBSDにRedmine2.1.2をインストール - jou4のブログ

Copyright © 1996,1997-2006,2007- by F.Kimura,