debian squeeze で redmine を動かしてみた
ニュースが気になってあんまり集中できませんでしたが。。
概要
一般ユーザ権限で動かしたかったので、ちょっと複雑なことをしています。また先述の通りあんまり集中していないので抜け漏れが多数あると思われます。さらに、私は rails アプリを初めて触ったので変なことをしてるところが多分にあると思われます。参照する方はご注意を。
そんなゴミ日記公開すんなって話ですが、公開します。
基本的に aptitude でインストール可能なパッケージだけで動かしています。ただし、自分でコンパイルしてるパッケージも既にいくつも入っているのですべてがそうである確証はありません。
環境
いろいろインストール
設定に先立って、必要なものや必要な気がしたものを適当に apt でインストール
aptitude install redmine-pgsql aptitude install postgresql-8.4 aptitude install redmine aptitude install libapache2-mod-passenger aptitude install apache2-threaded-dev
新たにインストールしたのはこれぐらいです。しかし、元から入っていたパッケージもあるので、これで必要十分かはわかりません。
redmine
インストール先ディレクトリは ~/public_html/redmine
apache で動かそうとしていたのですけど、勝手が分からず苦戦しすぎて今回は断念。
この辺が原因かなぁ。
Passengerで運用時、リポジトリブラウザで拡張子が.cgi、.PHPのファイル閲覧がエラー(404)になる — Redmine.JP
/usr/share/redmine/public さえ公開すればいいらしいのですが、/usr/share の下なんて公開するのは気持ちが悪い。それに一般ユーザ権限だと log 書き込めないし。
で、色々試行錯誤した結果、以下のようなコマンドで home ディレクトリにコピーしてみました。*1
cp -prs /usr/share/redmine/ ~/public_html
postgres-8.4
postgres は新たにプロセスを生成してこちらもユーザ権限で動かしてあります。data を置くディレクトリは
postgres 関連のファイルはここに作りました。
~/redmine/postgres/
data, etc, run ディレクトリを含んでいます。
起動
mypgsql
Postgres プロセスを起動するためのスクリプトを書きました。
data ディレクトリを初期化してユーザ、データベースを作成します。
g_datadir=~/redmine/postgres/data g_confdir=~/redmine/postgres/etc g_logfile=~/.log/redmine-postgres.log g_password="*adminpass*" if [ $(ls "${g_datadir}" | wc -l) -eq 0 ] ; then while [ -z "${g_passfile}" ] || [ -f "${g_passfile}" ] ; do g_passfile=/tmp/mypgsql-${RANDOM} done echo -n ${g_password} > "${g_passfile}" /usr/lib/postgresql/8.4/bin/initdb -U admin -A md5 --pwfile \ "${g_passfile}" -E utf-8 -D "${g_datadir}" rm -f "${g_passfile}" cp -pr "${g_confdir%/}"/*.conf "${g_confdir%/}"/environment \ "${g_datadir}" is_initialize=1 fi /usr/lib/postgresql/8.4/bin/pg_ctl -w -D "${g_datadir}" -l "${g_logfile}" start if [ -n "${is_initialize}" ] ; then export PGPASSWORD="${g_password}" /usr/lib/postgresql/8.4/bin/createuser redmine -U admin -h localhost \ -p 15432 --no-inherit --no-superuser --no-createdb \ --no-createrole --login -P /usr/lib/postgresql/8.4/bin/createdb redmine -U admin -E utf-8 \ -O redmine -h localhost -p 15432 fi
redmine-server
上述の通り、apache 配下で使うことに挫折したので ruby で書いてあるらしい http サーバで起動します。そのためのスクリプトを redmine-server という名前でスクリプトにまとめました。
#!/bin/bash export RAILS_ROOT=~/public_html/redmine export RAILS_ETC=${RAILS_ROOT%/}/config export RAILS_CACHE=${RAILS_ROOT%/}/cache export RAILS_LOG=${RAILS_ROOT%/}/log export RAILS_VAR=${RAILS_ROOT%/}/var export RAILS_ENV=production export REDMINE_LANG="ja" cd ${RAILS_ROOT} rake -f Rakefile generate_session_store || exit 1 rake -f Rakefile db:migrate || exit 1 rake -f Rakefile redmine:load_default_data || exit 1 ruby script/server -e production -p 8000 -b "*" -d
でアクセスできます。
まとめ
redmine について調べてみると、いろいろな構築の仕方をしている人がいるので、情報が把握しづらかったです。多分 rails のことを知っている人ならそれほどの難易度でもないのでしょうが、私にとっては辛かったです。
というわけで、ユーザ権限で動かすための導入はそれなりに難易度が高そうです。安易な気持ちでは止めておきましょう。
*1:バージョンが上がったときに、インストールするファイルが増えたら困るな