RedmineでWe’re sorry, but something went wrong

再起動した際にログイン画面を表示させようとすると
We’re sorry, but something went wrong
が表示される場合の対応について
Apacheのerror_logには下記のようなログが記録される。

Could not spawn process for application /var/lib/redmine: An error
occurred while starting up the preloader: it did not write a startup
response in time.
Error ID: 85670ca3
Error details saved to: /tmp/passenger-error-scHOBl.html
Message from application: An error occurred while starting up the
preloader: it did not write a startup response in time. Please read <a
href="https://github.com/phusion/passenger/wiki/Debugging-application-startup-problems">this
article for more information about this problem.<br>
<h2>Raw process output:</h2>
<pre>
/var/lib/redmine/vendor/bundle/ruby/2.2.0/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465:
warning: duplicated key at line 466 ignored: "inodot"
</pre>

Debugging application startup problems
に対処方法があるが、今回の場合には、タイムアウトが原因だった。
デフォルトは90秒のようなので、
/etc/httpd/conf.d/redmine.conf に下記記述を追加して解決した。120秒は環境に応じて長くする必要がある。
PassengerStartTimeout 120

Tracを0.11にバージョンアップしてみた

Tracのバージョンを0.10から0.11.5へバージョンアップしてみました。
日本語化されたものはインタアクトさんからダウンロードできます。
バージョンアップする手順は、UPGRADEに書いてありましたが、少しハマリました。。。
setuptoolsがなかったために、python setup.py installとしても「ImportError: No module named setuptools」と怒られます。
wget http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py
で幸せになれます。
あとは次の手順の通り
sudo python setup.py install
sudo trac-admin (プロジェクトのパス) upgrade
sudo trac-admin (プロジェクトのパス) wiki upgrade
バージョンアップしたことにより、管理コンソールが追加され、今までマイルストーンの登録とか、優先度とか、チケット分類などの変更や権限設定をコマンドラインでしなければならなかった部分が管理コンソールでできるようになりました。(これは大きい!)
ただ、TRAC_ADMIN権限を付与する部分は、今まで通りコマンドラインでやる必要があります。(anonymousでログインして設定してから、Basic認証を設定するならば不要かもしれませんが・・・)

環境変数エラー

Trac detected an internal error: The environment options “TRAC_ENV” or “TRAC_ENV_PARENT_DIR” or the mod_python options “TracEnv” or “TracEnvParentDir” are missing. Trac requires one of these options to locate the Trac environment(s).
というエラーが発生した。
原因は、TRAC_ENVがhttpd.confなどに設定されていないことによる。
<Location /xxx>
SetEnv TRAC_ENV “/trac_path
</Location>
などの記載を行う。

tracの初期設定をする

tracの初期設定について説明する。tracは/install_path/tracに構築されたものとして説明しているので、適宜読み替えて欲しい。
# cd /install_path/
# trac-admin trac
Welcome to trac-admin 0.10.4
Interactive Trac administration console.
Copyright (c) 2003-2006 Edgewall Software
Type: ‘?’ or ‘help’ for help on commands.
Trac [/install_path/trac]> permission list
もし以下のようになる場合には、ログイン時の権限があるかどうか確認して欲しい。通常はapacheが所有者になっているから、rootユーザーとなるか、グループへの権限を付与するなどをしなければならなくなるだろう。
Command failed: The user XXXX requires read _and_ write permission to the database file /install_path/trac/db/trac.db and the directory it is located in.
User Action
————————–
anonymous BROWSER_VIEW
anonymous CHANGESET_VIEW
anonymous FILE_VIEW
anonymous LOG_VIEW
anonymous MILESTONE_VIEW
anonymous REPORT_SQL_VIEW
anonymous REPORT_VIEW
anonymous ROADMAP_VIEW
anonymous SEARCH_VIEW
anonymous TICKET_CREATE
anonymous TICKET_MODIFY
anonymous TICKET_VIEW
anonymous TIMELINE_VIEW
anonymous WIKI_CREATE
anonymous WIKI_MODIFY
anonymous WIKI_VIEW
Available actions:
CONFIG_VIEW, MILESTONE_ADMIN, MILESTONE_CREATE, MILESTONE_DELETE,
MILESTONE_MODIFY, MILESTONE_VIEW, REPORT_ADMIN, REPORT_CREATE,
REPORT_DELETE, REPORT_MODIFY, REPORT_SQL_VIEW, REPORT_VIEW, ROADMAP_ADMIN,
ROADMAP_VIEW, SEARCH_VIEW, TICKET_ADMIN, TICKET_APPEND, TICKET_CHGPROP,
TICKET_CREATE, TICKET_MODIFY, TICKET_VIEW, TIMELINE_VIEW, TRAC_ADMIN,
WIKI_ADMIN, WIKI_CREATE, WIKI_DELETE, WIKI_MODIFY, WIKI_VIEW
# trac-admin trac permission add (ログインユーザー名) TRAC_ADMIN
# trac-admin trac/ permission list
User Action
————————–
anonymous BROWSER_VIEW
anonymous CHANGESET_VIEW
anonymous FILE_VIEW
anonymous LOG_VIEW
anonymous MILESTONE_VIEW
anonymous REPORT_SQL_VIEW
anonymous REPORT_VIEW
anonymous ROADMAP_VIEW
anonymous SEARCH_VIEW
anonymous TICKET_CREATE
anonymous TICKET_MODIFY
anonymous TICKET_VIEW
anonymous TIMELINE_VIEW
anonymous WIKI_CREATE
anonymous WIKI_MODIFY
anonymous WIKI_VIEW
matsuda TRAC_ADMIN
TRAC_ADMINだとロードマップにおけるマイルストーンの追加や削除を画面上からすることができます。anonymous権限はデフォルトを意味するので、この権限表に存在しないユーザーはanonymousとみなされます。バグ報告などをしてもらうユーザーをデフォルトとするならば、WIKI_CREATE を削除すると良いと思います。(変更されたくない場合には読み取り専用にするにすれば、所有者しか変更できなくなります)
なお、removeする際にマッチしないユーザーがいてもエラーにならないので、削除した後は必ずpermission listを確認する。
詳しい権限については、Tracの権限設定(http://hackmylife.net/2007/02/trac.html)が参考になります。
Trac [/install_path/trac]> component list
Name Owner
——————–
component1 somebody
component2 somebody
Trac [/install_path/trac]> component add (コンポーネント) somebody
Trac [/install_path/trac]> priority list
Possible Values
—————
blocker
critical
major
minor
trivial
Trac [/install_path/trac]> priority remove blocker
Trac [/install_path/trac]> priority add “その他”
Trac [/install_path/trac]> version list
Trac [/install_path/trac]> version remove 2.0
選択肢がない場合にはチケット属性の項目から表示されなくなる。
分類の項目をカスタマイズする。
Trac [/install_path/trac]> ticket_type list
Trac [/install_path/trac]> ticket_type remove defect
Trac [/install_path/trac]> ticket_type add “不具合”
Trac [/install_path/trac]> ticket_type add “機能改善”
Trac [/install_path/trac]> ticket_type add “その他”
もし、機能改善を上にしたいのなら、
Trac [/install_path/trac]> ticket_type order “機能改善” up
とするだけだ。
そして終了する。
Trac [/install_path/trac]> exit
お勧めの使い方。
まず、ロードマップにあるマイルストーンをすべて(milestone1~milestone4)削除します。
ある目標ごとにマイルストーンを作成します。(ベータリリースとか公開リリースとか)
trac.ini
[notification]
always_notify_owner = false
always_notify_reporter = false
〇参考サイト
Server/trac/使い方
http://www.takebay.net/~nao/index.php?Server%2Ftrac%2F%BB%C8%A4%A4%CA%FD
http://ameblo.jp/itboy/entry-10036354850.html

Fedora Coreにtracをインストールする

何人かで開発をしようとしても、なかなかバグの修正管理がうまくいかないとか、ドキュメントがいろんなところに転がってしまい情報が分散化したり、作ったけれども使われないとか。。。
そんななかでtracは情報の集約化とバグ管理を統合的に行える。
実際にインストールをしてみた。結構インストールが面倒くさいだろうと二の足を踏んでいたが、以外に簡単にできることが分かった。
1.Tracをインストールする
Fedora Coreであれば、そのままyumコマンドでインストールできる。
# yum install trac

Loading “installonlyn” plugin
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
–> Populating transaction set with selected packages. Please wait.
—> Package trac.noarch 0:0.10.4-1.fc6 set to be updated
–> Running transaction check
–> Processing Dependency: subversion >= 1.1 for package: trac
–> Processing Dependency: python-clearsilver >= 0.9.3 for package: trac
–> Restarting Dependency Resolution with new changes.
–> Populating transaction set with selected packages. Please wait.
—> Package subversion.i386 0:1.4.3-2.fc6 set to be updated
—> Package python-clearsilver.i386 0:0.10.4-4.fc6 set to be updated
–> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
trac noarch 0.10.4-1.fc6 extras 773 k
Installing for dependencies:
python-clearsilver i386 0.10.4-4.fc6 extras 132 k
subversion i386 1.4.3-2.fc6 updates 2.3 M
Transaction Summary
=============================================================================
Install 3 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 3.2 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): subversion-1.4.3-2 100% |=========================| 2.3 MB 00:02
(2/3): python-clearsilver 100% |=========================| 132 kB 00:00
(3/3): trac-0.10.4-1.fc6. 100% |=========================| 773 kB 00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: python-clearsilver ######################### [1/3]
Installing: subversion ######################### [2/3]
Installing: trac ######################### [3/3]
Installed: trac.noarch 0:0.10.4-1.fc6
Dependency Installed: python-clearsilver.i386 0:0.10.4-4.fc6 subversion.i386 0:1.4.3-2.fc6
Complete!

2.次に一般ユーザーでプロジェクトを作成する。ここでは/root/path/tracというフォルダ(そのようなフォルダは一般的にはありません)にプロジェクトを作成したと仮定して説明する。
$ trac-admin trac/ initenv

Creating a new Trac environment at /root/path/trac
Trac will first ask a few questions about your environment
in order to initalize and prepare the project database.
Please enter the name of your project.
This name will be used in page titles and descriptions.
Project Name [My Project]> (ここにプロジェクト名を入れる)
Please specify the connection string for the database to use.
By default, a local SQLite database is created in the environment
directory. It is also possible to use an already existing
PostgreSQL database (check the Trac documentation for the exact
connection string syntax).
Database connection string [sqlite:db/trac.db]>(何も入力しない)
Please specify the type of version control system,
By default, it will be svn.
If you don’t want to use Trac with version control integration,
choose the default here and don’t specify a repository directory.
in the next question.
Repository type [svn]>(何も入力しない)
Please specify the absolute path to the version control
repository, or leave it blank to use Trac without a repository.
You can also set the repository location later.
Path to repository [/path/to/repos]> (何も入力しない)
Please enter location of Trac page templates.
Default is the location of the site-wide templates installed with Trac.
Templates directory [/usr/share/trac/templates]>(何も入力しない)
Creating and Initializing Project
Installing default wiki pages
/usr/share/trac/wiki-default/WikiDeletePage => WikiDeletePage
/usr/share/trac/wiki-default/TracImport => TracImport
/usr/share/trac/wiki-default/TracReports => TracReports
/usr/share/trac/wiki-default/TracRoadmap => TracRoadmap
/usr/share/trac/wiki-default/WikiRestructuredText => WikiRestructuredText
/usr/share/trac/wiki-default/TracSearch => TracSearch
/usr/share/trac/wiki-default/TracInstall => TracInstall
/usr/share/trac/wiki-default/TracWiki => TracWiki
/usr/share/trac/wiki-default/TracEnvironment => TracEnvironment
/usr/share/trac/wiki-default/TracLinks => TracLinks
/usr/share/trac/wiki-default/TracInterfaceCustomization => TracInterfaceCustomization
/usr/share/trac/wiki-default/TracSupport => TracSupport
/usr/share/trac/wiki-default/TracQuery => TracQuery
/usr/share/trac/wiki-default/TracAccessibility => TracAccessibility
/usr/share/trac/wiki-default/TitleIndex => TitleIndex
/usr/share/trac/wiki-default/WikiRestructuredTextLinks => WikiRestructuredTextLinks
/usr/share/trac/wiki-default/WikiPageNames => WikiPageNames
/usr/share/trac/wiki-default/TracFastCgi => TracFastCgi
/usr/share/trac/wiki-default/InterMapTxt => InterMapTxt
/usr/share/trac/wiki-default/TracRss => TracRss
/usr/share/trac/wiki-default/TracLogging => TracLogging
/usr/share/trac/wiki-default/TracPlugins => TracPlugins
/usr/share/trac/wiki-default/TracBrowser => TracBrowser
/usr/share/trac/wiki-default/TracTickets => TracTickets
/usr/share/trac/wiki-default/TracTicketsCustomFields => TracTicketsCustomFields
/usr/share/trac/wiki-default/InterTrac => InterTrac
/usr/share/trac/wiki-default/WikiMacros => WikiMacros
/usr/share/trac/wiki-default/TracModPython => TracModPython
/usr/share/trac/wiki-default/TracGuide => TracGuide
/usr/share/trac/wiki-default/TracStandalone => TracStandalone
/usr/share/trac/wiki-default/TracBackup => TracBackup
/usr/share/trac/wiki-default/TracIni => TracIni
/usr/share/trac/wiki-default/WikiNewPage => WikiNewPage
/usr/share/trac/wiki-default/TracTimeline => TracTimeline
/usr/share/trac/wiki-default/RecentChanges => RecentChanges
/usr/share/trac/wiki-default/TracCgi => TracCgi
/usr/share/trac/wiki-default/WikiStart => WikiStart
/usr/share/trac/wiki-default/TracChangeset => TracChangeset
/usr/share/trac/wiki-default/TracUnicode => TracUnicode
/usr/share/trac/wiki-default/TracNotification => TracNotification
/usr/share/trac/wiki-default/SandBox => SandBox
/usr/share/trac/wiki-default/TracAdmin => TracAdmin
/usr/share/trac/wiki-default/TracUpgrade => TracUpgrade
/usr/share/trac/wiki-default/WikiProcessors => WikiProcessors
/usr/share/trac/wiki-default/TracRevisionLog => TracRevisionLog
/usr/share/trac/wiki-default/WikiFormatting => WikiFormatting
/usr/share/trac/wiki-default/CamelCase => CamelCase
/usr/share/trac/wiki-default/TracSyntaxColoring => TracSyntaxColoring
/usr/share/trac/wiki-default/WikiHtml => WikiHtml
/usr/share/trac/wiki-default/InterWiki => InterWiki
/usr/share/trac/wiki-default/TracPermissions => TracPermissions
Warning:
You should install the SVN bindings
———————————————————————
Project environment for ‘Kataude Project’ created.
You may now configure the environment by editing the file:
/root/path/trac/conf/trac.ini
If you’d like to take this new project environment for a test drive,
try running the Trac standalone web server `tracd`:
tracd –port 8000 /root/path/trac
Then point your browser to http://localhost:8000/trac.
There you can also browse the documentation for your installed
version of Trac, including information on further setup (such as
deploying Trac to a real web server).
The latest documentation can also always be found on the project
website:
http://trac.edgewall.org/
Congratulations!

3.作成できたフォルダの所有者をapacheにする。
# chown -R apache trac/
4.apacheの設定ファイルに以下の記述をする。なお、ここではprojというパスに対してアクセスがあった場合に見せるようにする。
Alias /trac /usr/share/trac/htdocs
ScriptAlias /proj /var/www/cgi-bin/trac.cgi

SetEnv TRAC_ENV “/root/path/trac”

5.apacheを再起動して、登録したパスにアクセスすれば、正しく表示できていることを確認できる。
http://hogehoge.com/proj
6.ただ、日本語化されていないので、インタアクト株式会社の日本語化ツールをダウンロードして、解凍する。
$ cd /tmp
$ wget http://www.i-act.co.jp/project/products/downloads/trac-0.10.4-ja-1.zip
$ unzip trac-0.10.4-ja-1.zip
7./usr/share/trac/にあるオリジナルのtemplatesならびにwiki-defaultのバックアップを取って、解凍した日本語版をコピーする。
# cd /usr/share/trac/
# mv templates/ templates.org
# mv wiki-default/ wiki-default.org
# cp -pR /tmp/trac-0.10.4-ja-1/templates/ ./
# cp -pR /tmp/trac-0.10.4-ja-1/templates/ ./
# cp -pR /tmp/trac-0.10.4-ja-1/wiki-default/ ./
8.もう一度アクセスすると日本語化されているのが分かる。ただ、anonymousユーザーでアクセスできてしまうので、ユーザー認証したいところ。これについては次回説明したい。(なお、AnonymousだとLoginしようとしてもエラーになる)
このドキュメント作成に当たり参考にさせていただいたサイトは以下のとおりです。
CentOSでyumからTracをインストール
Trac をインストールしてみたよ

“Fedora Coreにtracをインストールする” の続きを読む