Tracのインストール

とりあえず、依存モジュールが多い!
全てのモジュールをインストールするのにかなり時間がかかった。

◆参照URL

http://weekbuild.sakura.ne.jp/trac/wiki/TracDoc/SakuraInternet
http://www.i-act.co.jp/project/products/products.html
http://takanory.net/server/trac/
http://tach.arege.net/trac/wiki/TracInstall
http://d.hatena.ne.jp/akiyan/20060822/p1
http://trac.edgewall.org/wiki/TracOnRedhat9HomeDir
http://trac.edgewall.org/wiki/TracDownload
http://journal.mycom.co.jp/special/2006/trac/002.html

(1) ファイルの取得

 [Trac(日本語版)]
  http://www.i-act.co.jp/project/products/products.html より trac-0.10.4-ja-1.zip をダウンロード
  ※下記の依存モジュールについては、zipを展開してできた INSTALL ファイルに従ったバージョンをインストールする。

 [Python および 日本語Codec]
  http://www.python.jp/Zope/download から Python-2.3.tgz、JapaneseCodecs-1.4.10.tar.gz を取得

 [Tcl]
  http://www.tcl.tk/software/tcltk/downloadnow83.html より tcl8.3.5-src.tar.gz を取得

 [Swig]
  http://prdownloads.sourceforge.net/swig/swig-1.3.21.tar.gz?download より swig-1.3.21.tar.gz を取得

 [Sqlite]
  http://www.sqlite.org/download.html より sqlite-3.5.4.tar.gz を取得

 [SilverCity]
  http://sourceforge.net/projects/silvercity/ より SilverCity-0.9.5.tar.gz を取得
  http://sourceforge.net/project/showfiles.php?group_id=45693

 [Clearsilver]
  http://www.clearsilver.net/downloads/ より clearsilver-0.9.3.tar.gz を取得

 [Pysqlite]
  http://initd.org/pub/software/pysqlite/releases/ より pysqlite-2.3.5.tar.gz を取得

(2) インストール

 ◆Apacheのリコンパイル

cd httpd-2.0.52
make distclean
./configure --enable-module="so ssl dav" --enable-dav --enable-rewrite=shared --enable-ssl --with-ssl=/usr/local/ssl
make
make install

 ◆Pythonのインストール
   こちらを参照

 ◆Tclのインストール

tar zxfv tcl8.3.5-src.tar.gz
cd tcl8.3.5/unix
./configure
make
make install
/sbin/ldconfig

 ◆Swigのインストール

tar xzf swig-1.3.21.tar.gz
cd SWIG-1.3.21
./configure
make
make install
make -k runtime
make install-runtime
/sbin/ldconfig

 ◆Subversionのインストール

tar xzf subversion-1.4.4.tar.gz
cd subversion-1.4.4
./configure --prefix=/usr/local \
--disable-mod-activation \
--enable-swig-bindings=python \
--with-apr=/usr/local/apache2/bin/apr-config \
--with-apr-util=/usr/local/apache2/bin/apu-config \
--with-apxs=/usr/local/apache2/bin/apxs \
--without-berkeley-db \
--with-zlib \
--with-swig=/usr/local

configure: error: invalid apr version found

と怒られるので

http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=7495&expandFolder=7495&folderID=260 から
依存モジュール( subversion-deps-1.4.4.tar.gz ) をダウンロード、展開して再度 configure

./configure --prefix=/usr/local \
--disable-mod-activation \
--enable-swig-bindings=python \
--with-apr=./apr/apr-config \
--with-apr-util=./apr-util/apu-config \
--with-apxs=/usr/local/apache2/bin/apxs \
--without-berkeley-db \
--with-zlib \
--with-swig=/usr/local
make
make install

# mod_dav_svn と mod_authz_svn がないと怒られるので、

# ソースディレクトリからコピーして再度 make install
cp ./subversion/mod_dav_svn/.libs/mod_dav_svn.so /usr/local/apache2/modules
cp ./subversion/mod_authz_svn/.libs/mod_authz_svn.so /usr/local/apache2/modules/
make install

make swig-py
make install-swig-py
/sbin/ldconfig

 ◆SQLiteのインストール
  (OSがTCLに対応しておらずエラーになったのでTCLの機能を無効にする)

tar zxfv sqlite-3.5.4.tar.gz
cd sqlite-3.5.4
.configure --disable-tcl
make
make install
/sbin/ldconfig

 ◆SilverCityのインストール

tar zxfv SilverCity-0.9.5.tar.gz
cd SilverCity-0.9.5
python setup.py build
python setup.py install
/sbin/ldconfig

 ◆Clearsilverのインストール

tar zxfv clearsilver-0.9.3.tar.gz
cd clearsilver-0.9.3
./configure --with-python=/usr/local/bin/python --with-apache=/usr/local/apache2
make

# makeでコケルので java ruby 等を無効にして再度 configure
make distclean
./configure --with-python=/usr/local/bin/python --with-apache=/usr/local/apache2 --disable-ruby --disable-java --disable-perl
make
make install
/sbin/ldconfig

 ◆Pysqliteのインストール

tar zxfv pysqlite-2.3.5.tar.gz
cd pysqlite-2.3.5
python setup.py build
python setup.py install
/sbin/ldconfig

 ◆Tracのインストール

unzip trac-0.10.4-ja-1.zip
cd trac-0.10.4-ja-1
python setup.py build
python setup.py install
/sbin/ldconfig

 ◆Trac日本語Codecのインストール

tar zxfv JapaneseCodecs-1.4.10.tar.gz
cd JapaneseCodecs-1.4.10
python ./setup.py install

 ◆残りの設定作業

cd /usr/local/lib/python2.3/site-packages
ln -s /usr/local/lib/svn-python svn-python
ln -s /usr/local/lib/svn-python/svn svn
ln -s /usr/local/lib/svn-python/libsvn libsvn

(3) プロジェクトの作成

 ◆SVNリポジトリの作成

svnadmin create --fs-type=fsfs /path/to/svn_rep

 ◆Tracプロジェクトの作成

trac-admin /path/to/myproject initenv

Creating a new Trac environment at /path/to/myproject

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]> /path/to/svn_repos

Please enter location of Trac page templates.
Default is the location of the site-wide templates installed with Trac.

Templates directory [/usr/local/share/trac/templates]>

Creating and Initializing Project

Installing default wiki pages
/usr/local/share/trac/wiki-default/CamelCase => CamelCase
/usr/local/share/trac/wiki-default/InterMapTxt => InterMapTxt
/usr/local/share/trac/wiki-default/InterTrac => InterTrac
/usr/local/share/trac/wiki-default/InterWiki => InterWiki
/usr/local/share/trac/wiki-default/RecentChanges => RecentChanges
/usr/local/share/trac/wiki-default/SandBox => SandBox
/usr/local/share/trac/wiki-default/TitleIndex => TitleIndex
/usr/local/share/trac/wiki-default/TracAccessibility => TracAccessibility
/usr/local/share/trac/wiki-default/TracAdmin => TracAdmin
/usr/local/share/trac/wiki-default/TracBackup => TracBackup
/usr/local/share/trac/wiki-default/TracBrowser => TracBrowser
/usr/local/share/trac/wiki-default/TracCgi => TracCgi
/usr/local/share/trac/wiki-default/TracChangeset => TracChangeset
/usr/local/share/trac/wiki-default/TracEnvironment => TracEnvironment
/usr/local/share/trac/wiki-default/TracFastCgi => TracFastCgi
/usr/local/share/trac/wiki-default/TracGuide => TracGuide
/usr/local/share/trac/wiki-default/TracImport => TracImport
/usr/local/share/trac/wiki-default/TracIni => TracIni
/usr/local/share/trac/wiki-default/TracInstall => TracInstall
/usr/local/share/trac/wiki-default/TracInterfaceCustomization => TracInterfaceCustomization
/usr/local/share/trac/wiki-default/TracJa => TracJa
/usr/local/share/trac/wiki-default/TracLinks => TracLinks
/usr/local/share/trac/wiki-default/TracLogging => TracLogging
/usr/local/share/trac/wiki-default/TracModPython => TracModPython
/usr/local/share/trac/wiki-default/TracNotification => TracNotification
/usr/local/share/trac/wiki-default/TracPermissions => TracPermissions
/usr/local/share/trac/wiki-default/TracPlugins => TracPlugins
/usr/local/share/trac/wiki-default/TracQuery => TracQuery
/usr/local/share/trac/wiki-default/TracReports => TracReports
/usr/local/share/trac/wiki-default/TracRevisionLog => TracRevisionLog
/usr/local/share/trac/wiki-default/TracRoadmap => TracRoadmap
/usr/local/share/trac/wiki-default/TracRss => TracRss
/usr/local/share/trac/wiki-default/TracSearch => TracSearch
/usr/local/share/trac/wiki-default/TracStandalone => TracStandalone
/usr/local/share/trac/wiki-default/TracSupport => TracSupport
/usr/local/share/trac/wiki-default/TracSyntaxColoring => TracSyntaxColoring
/usr/local/share/trac/wiki-default/TracTermsJa => TracTermsJa
/usr/local/share/trac/wiki-default/TracTickets => TracTickets
/usr/local/share/trac/wiki-default/TracTicketsCustomFields => TracTicketsCustomFields
/usr/local/share/trac/wiki-default/TracTimeline => TracTimeline
/usr/local/share/trac/wiki-default/TracUnicode => TracUnicode
/usr/local/share/trac/wiki-default/TracUpgrade => TracUpgrade
/usr/local/share/trac/wiki-default/TracWiki => TracWiki
/usr/local/share/trac/wiki-default/WikiDeletePage => WikiDeletePage
/usr/local/share/trac/wiki-default/WikiFormatting => WikiFormatting
/usr/local/share/trac/wiki-default/WikiHtml => WikiHtml
/usr/local/share/trac/wiki-default/WikiMacros => WikiMacros
/usr/local/share/trac/wiki-default/WikiNewPage => WikiNewPage
/usr/local/share/trac/wiki-default/WikiPageNames => WikiPageNames
/usr/local/share/trac/wiki-default/WikiProcessors => WikiProcessors
/usr/local/share/trac/wiki-default/WikiRestructuredText => WikiRestructuredText
/usr/local/share/trac/wiki-default/WikiRestructuredTextLinks => WikiRestructuredTextLinks
/usr/local/share/trac/wiki-default/WikiStart => WikiStart
Indexing repository
[58]

Project environment for 'My Project' created.

You may now configure the environment by editing the file:

 /path/to/myproject/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 /path/to/myproject

Then point your browser to http://localhost:8000/myproject.
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!

(4) サーバの起動と停止(スタンドアロン)
 [起動]

tracd --daemonize --port 8000 /path/to/myproject

 [停止]

killall tracd

 [起動・停止スクリプト]

#!/bin/sh
# description: Start/stop tracd
# chkconfig: 345 91 09
#
###########################################################
DAEMON=/usr/local/bin/tracd
PORT=8000
OPTION="--daemonize --port $PORT"
PROJECT="/path/to/myproject"
###########################################################

ARGV="$@"

case $ARGV in
start)
  $DAEMON $OPTION $PROJECT
  ERROR=$?
  ;;
stop)
  killall tracd
  ERROR=$?
  ;;
restart)
  killall tracd
  $DAEMON $OPTION $PROJECT
  ERROR=$?
  ;;
*)
  echo "Error! ( Argment : $ARGV )"
  ERROR=1
esac

exit $ERROR

(5) Apahceで動かす場合

 [mod_pythonの取得]

  http://httpd.apache.org/modules/python-download.cgi から mod_python-3.3.1.tgz をダウンロード

 [mod_pythonのインストール]

tar zxfv mod_python-3.3.1.tgz
cd mod_python-3.3.1
./configure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/usr/local/bin/python
make
make install

 [httpd.confに設定追加]

LoadModule python_module modules/mod_python.so
LoadModule dav_svn_module modules/mod_dav_svn.so



# SVNリポジトリ用の設定
<Location /svn/myproject>
  DAV svn
  SVNPath /path/to/svn_repos

  #Basic認証の設定
  AuthType Basic
  AuthName "Subversion repository"
  AuthUserFile /path/to/myproject/.htpasswd
  Require valid-user
</Location>

# Tracプロジェクト用の設定
<Location /projects/myproject>
  SetHandler mod_python
  PythonHandler trac.web.modpython_frontend
  PythonOption TracEnv /path/to/myproject
  PythonOption TracUriRoot /projects/myproject
</Location>

# Tracプロジェクトへのログイン時のパスワードファイルの指定
<Location "/projects/myproject/login">
  AuthType Basic
  AuthName "myproject"
  AuthUserFile /path/to/myproject/.htpasswd
  Require valid-user
</Location>

 [Tracユーザの作成(SVNユーザと兼用)]

htpasswd -c /path/to/myproject/.htpasswd ユーザ名

 [Apacheの再起動]

/etc/init.d/httpd restart

 [ブラウザから httpd://xxx.xxx.xxx.xxx/projects/myproject にアクセス]

The user xxxxx requires read _and_ write permission to the database file /path/to/myproject/db/trac.db and the directory it is located in.

 アクセス権がないと怒られるので、Tracプロジェクトの所有者をApacheの実行ユーザに変更

chown -R httpd:httpd /home/system/trac_project

 [再度ブラウザからアクセス]

SubversionException: ("Can't open file '/path/to/svn_rep/format': Permission denied", 13)

 今度はSVNのアクセス権がないと怒られるので、SVNリポジトリのアクセス権を変更
 (たぶん format というファイルを apahceの実行ユーザが読めればいいだけなので、下記はやりすぎかもしれない。)

chmod 777 /path/to/svn_rep

(99) メモ

#ユーザの作成
htpasswd -c /path/to/.htpasswd ユーザ名

#設定されている権限の確認
trac-admin /path/to/myproject permission list

#anonymousユーザからすべての権限を剥奪
trac-admin /path/to/myproject permission remove anonymous *

#作成したユーザに権限を与える
trac-admin /path/to/myproject permission add ユーザ名 TRAC_ADMIN


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-06-11 (木) 00:48:46 (4124d)