trac0.11 の beta1 が出てきて1ヶ月と少々、そろそろ正式版 が出てくることを期待しつつ忘れる前にメモ整理。
ここでのTrac はあくまでも 0.11beta1 の話(2008/01/19現在)なのでその点には注意。
Apache2.2.8 + Python2.5.1 + Trac0.11beta1 + Subversion1.4.6 + ViewVC
を Windows な自宅サーバ環境にオレオレ証明書でのSSLまで、はしょりつつ全部入りメモ。
【参考にしたサイトなど】
- てんぷらメモ
- 気の向くままに・・・
- TortoiseSVN のヘルプ(current と Nightly の両方)
- Trac 本家の説明 TracOnWindows とかTrac with Python 2.5 とか
インストール手順をまとめていくれている方々、ツールを提供されているサイトには感謝多謝!!
【調達物】
1月19日ごろ現在で適当にゲットしたもの
- Apache
- http://httpd.apache.org/download.cgi の Win32 Binary including OpenSSL 0.9.8g (MSI Installer) の apache_2.2.8-win32-x86-openssl-0.9.8g.msi をゲット
- Python
- http://www.python.org/download/ のあたりから辿ってWindows installer x86 用の python-2.5.1.msi をゲット
- ついでに SourceForgeのここから Python for Windows extensions の pywin32-210.win32-py2.5.exe も追加ゲット
- Subversion
1.4.6 のインストーラが揃っていない(1月19日 現在)ので Downloads から組み合わせる- Win32 packages built against Apache 2.0 から 1.4.5 のインストーラ svn-1.4.5-setup.exe をゲット
- Win32 packages built against Apache 2.2 から 1.4.6 の Subversion本体の svn-win32-1.4.6.zip と Python bindings の svn-python-1.4.6.win32-py2.5.exe をゲット
- mod_python
- http://httpd.apache.org/modules/python-download.cgi から Win32 Binaries と辿って mod_python-3.3.1.win32-py2.5-Apache2.2.exe をゲット
- Trac
- 今回は Easy install で 0.11beta1 を直にインストールするので事前にダウンロードはしない
- exeのインストーラやzipのソースからインストールするなら Trac Downoad からゲット
- Genshi
- 今回は Easy install で 0.4.4 を直にインストールするので事前にダウンロードはしない
- exeのインストーラやeggやzipのソースからインストールするなら Genshi Download からゲット
- Pygments
- Easy install
- インストールに関するこのへん から セットアップスクリプト ez_setup.py をゲット
- TortoiseSVN
- Download から TortoiseSVN-1.4.7.11792-win32-svn-1.4.6.msi と LanguagePack-1.4.7.11792-win32-ja.exe
- その他必要に応じて
- Trac の plugin
気に入ったものをいろいろ - WinMerge 日本語版 / 本家
GUI な diff & Merge ツール、TortoiseSVN に付属する TortoiseMerge より好きなので- 日本語版のwebから新しめのものを何か
- mod_auth_sspi
Apache でWindowsドメイン認証させるため- http://sourceforge.net/projects/mod-auth-sspi/ から mod_auth_sspi-1.0.4-2.2.2.zip
- Trac の plugin
- ViewVC を利用するなら以下を
【自宅サーバの状態】
- サーバは srv.home.local
- 基本的なインストール先は c:\usr のした
- 各種データ置き場は
- Subversion リポジトリは d:\SVN\rensyu のように d:\SVN のした
- Trac は d:\Trac\rensyu のように d:\Trac のした
- httpのドキュメントルートは d:\www
- 各種実行バイナリは c:\usr\bin にあって、c:\usr\bin へのパスが通っている前提
- OS は Windows Small Business Server 2003 SP2 で IIS も動作中 port:80 と 443 は IIS が使用中
以上の条件で Trac (と ViewVC )を セットアップ
Trac月 で導入する方が楽という事実はまぁさておき、、、ともかくセットアップ開始。。。
【step1/10. Subversion (1/2) 】
まず Subversion 本体
1.4.6 系の setup.exe なバイナリが無いのでちょっと変則的な方法、不具合が出るかもしれないけれど今のところ無事
- Apache2.0用 svn-1.4.5-setup.exe をインストール、インストール先は C:\usr\Subversion
- Apache2.2用 svn-win32-1.4.6.zip を解凍してインストール場所 C:\usr\Subversion に上書きコピー
【step2/10. TortoiseSVN 】
あると便利(無いと不便)なのでインストール
- インストーラで本体をインストール、インストール先は c:\usr\TortoiseSVN
Windowsの再起動を問われるが次と一度で済ませたいのでここでは再起動しない - LanguagePack をインストール
再起動を問われるのでここで再起動
TortoiseSVN のヘルプ『サーバのセットアップ』は毎度の事ながらお世話になりっぱなし。
必要に応じて WinMerge もインストールしておく。
再起動後に TortoiseSVN の設定で言語を日本語への変更とダイアログのフォントは適切に変更するのを忘れずに。
【step3/10. Apache (1/3) 】
まず Apache 本体インストールと基本的な動作確認
- apache_2.2.8-win32-x86-openssl-0.9.8g.msi をカスタムでインストーラなりにインストール、インストール先は c:\usr\Apache2.2 に変更
毎度ながら IIS とかち合うので、動作確認は httpd.conf を書き換えてから - C:\usr\Apache2.2\bin\conf\httpd.conf の編集
- IIS とぶつからないようにポートを変更
Listen 8080
- DocumentRoot の C:/usr/Apache2.2/htdocs を自分の環境に合わせてD:/www に書き換え
DocumentRoot " D:/www"
<Directory " D:/www"> - ディレクトリの一覧が寂しいのと、マニュアルぐらいローカルで読めるようにしたいので、コメントアウトを取って有効にする
httpd-manual.conf
httpd-autoindex.conf
- IIS とぶつからないようにポートを変更
- タスクトレイのアイコンなどから Apache を start してひとまずアクセス可能か確認
- 動作を確認できたら Apache は stop させておく
【step4/10. Subversion (2/2) 】
Apache と Subversion の連携をセットアップ
- Apache用のモジュール mod_dav_svn.so と mod_authz_svn.so を C:\usr\Subversion\bin から C:\usr\Apache2.2\modules へコピー
- httpd.conf の編集
- コメントアウトを取って有効にする
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so - モジュールが列挙されている直後辺りに追加
##
## for subversion
##
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so - 最後あたりに追加
[for subversion repository : httpd.conf]
【補足】
SVNIndexXSLT "/svnindex.xsl" の行は無くても特に支障はない、が、TortoiseSVN でのチェックアウト用リンクを有効にしたいので TortoiseSVN のヘルプにある http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/contrib/other/svnindex から(ユーザー:guest / パス:なし)- menucheckout.ico
- svnindex.css
- svnindex.xsl
menucheckout.ico は menucheckout.gif (アイコンは 16x16 のデータを gif で保存)として作り直して svnindex.xsl の menucheckout.ico に関する箇所を合わせて書き直しておくと、IE からアクセスしたときにチェックアウトのアイコンが表示されて多少見栄えが良くなる。
IE をそもそも使っていないので、労のわりに報われない変更。。。
- コメントアウトを取って有効にする
- Apache と start してwebブラウザや TortoiseSVN からリポジトリへのアクセスを確認しておく
- 動作を確認できたら Apache は stop させておく
【step5/10. Apache (2/3) 】
所詮自宅サーバで細かく逐一認証の設定は面倒なのでWindowsドメイン認証一括
basic認証とか他の方法は割愛
- ゲットしてきた mod_auth_sspi-1.0.4-2.2.2.zip を解凍して mod_auth_sspi.so を Apache のモジュールディレクトリ c:\usr\Apache22\modules へコピー
- httpd.conf を編集
- モジュール一覧で auth 関連がある辺りの前に追加
## for windows domain auth
LoadModule sspi_auth_module modules/mod_auth_sspi.so - Subversion 用に追加したディレクティブを再編集
[for subversion repository : httpd.conf]
- モジュール一覧で auth 関連がある辺りの前に追加
- Apache を start
- ドメインのアカウントで webブラウザや TortoiseSVN からリポジトリにアクセスできる事を確認する
- 動作を確認できたら Apache は stop させておく
【step6/10. Python 】
Python本体と関連物をインストール
- インストーラ python-2.5.1.msi に任せて C:\usr\Python25 へインストール
- 追加で Python for Windows extensions をインストーラ pywin32-210.win32-py2.5.exe に任せてインストール
- システム環境変数の Path に C:\usr\Python25 と C:\usr\Python25\Scripts を追加
- mod_python をインストーラ mod_python-3.3.1.win32-py2.5-Apache2.2.exe に任せてインストール
インストール途中で Apache のインストール先を問われるので間違えずに指定 - httpd.conf を編集
- モジュールが列挙されている最後辺りに追加
##
## for mod_pyhotn
##
LoadModule python_module modules/mod_python.so
- モジュールが列挙されている最後辺りに追加
- Subversion の Python Bindings のインストーラ svn-python-1.4.6.win32-py2.5.exe に任せてインストール
念のために再起動しておく。
【step7/10. Trac 】
exeなインストーラの方がアンインストールしやすいような気がしつつも、折角なので Easy install 主体で。
- Easy install の ez_setup.py を名前を付けてファイルとして保存
- Easy install をインストール、ez_setup.py を保存した場所で
>python ez_setup.py
- 引き続き
>easy_install Pygments
>easy_install Genshi
>easy_install Trac
で一通り完了
【補足】
0.11beta1 では Easy install や exeなインストーラでインストールした場合と、ソースからインストールした場合でインストール先が多少異なっているので注意Easy install と exeなインストーラ でインストール C:\usr\Python25\Lib\site-packages\Trac-0.11b1-py2.5-win32.egg ソースからインストール C:\usr\Python25\Lib\site-packages\Trac-0.11b1-py2.5.egg
【step8/10. TracEnvironment の整備 】
最低限の動作確認と plugin のインストール
- TracEnvironment を D:\Trac\rensyu に作成する
>trac-admin d:\Trac\rensyuいくつか問われるので適当に適切に作成。
Trac [D:\Trac\rensyu]> initenv
管理者ユーザ(要は自分のアカウント) tracadmin に管理者権限を付与Trac [D:\Trac\rensyu]> permission add tracadmin TRAC_ADMIN- 既存 (D:\Trac\test2)のアップグレードなら以下の感じで
>trac-admin d:\Trac\test2
Trac [D:\Trac\test2]> upgrade
Trac [D:\Trac\test2]> wiki upgrade
- 既存 (D:\Trac\test2)のアップグレードなら以下の感じで
- 作業が終わったら trac-admin を exit して終了
Trac [D:\Trac\rensyu]> exit
- Apache にTrac用の設定を追加すべく httpd.conf を編集
- Trac の一覧が /projects としてアクセスできる使い方をしたいので次のような感じで httpd.conf の末尾に追加
[for Trac : httpd.conf]
★beta1 から正式版になったときにパスの書き換えに注意★
- Trac の一覧が /projects としてアクセスできる使い方をしたいので次のような感じで httpd.conf の末尾に追加
- Apache を restart して http://srv.home.local:8080/projects にアクセスして Trac の一覧が表示されるか確認
- 各々の trac に入り、表示されたら、login でログインしてメニューの右端に追加される Admin 利用が可能か確認
- 試しにplugin を追加
IniAdminPlugin を追加してみる- 0.11 用をダウンロードして解凍
- 解凍して setup.py のある場所で
> python setup.py bdist_egg
- 全体で有効にしたいでの作成した場所で
> easy_install dist\IniAdmin-0.2-py2.5.egg
- Trac の Admin メニューの Plugins に現れる iniadmin の Enabled にチェックを入れて [Apply changes]
- Easy install で0.11用をインストール
> easy_install http://trac-hacks.org/svn/tocmacro/0.11
- Trac の Admin メニューの Plugins に現れる tractocmacro の Enabled にチェックを入れて [Apply changes]
plugin の追加時には適宜 Apache を restart して動作の確認。
設定ファイルである D:\Trac\(TracEnvironment)\conf\trac.ini はメモ帳で編集しない、BOMを付加しないように、utf-8で保存することに注意。
【step9/10. Apache (3/3) : SSL 設定】
ユーザーは自分一人な自宅サーバなので、いわゆる オレオレ証明書 (参考:Webサイトのデジタル証明書を確認する@IT) でSSL。
- Apache の設定を適宜編集
httpd.conf
Include conf/extra/httpd-ssl.confコメントアウトを取って有効にする
conf\extra\httpd-ssl.conf
Listen 8443
#SSLMutex "file:C:/usr/Apache2.2/logs/ssl_mutex"
<VirtualHost _default_: 8443>
DocumentRoot " D:/www"
ServerName srv.home.local:8443
ServerAdmin メール@アドレス
SSLCertificateFile " C:/usr/Apache2.2/conf/ssl/my-server.cert"
SSLCertificateKeyFile " C:/usr/Apache2.2/conf/ssl/my-server.key"- ポートの変更
- SSLMutex の行をコメントアウト
- DocumentRoot など 自宅サーバの環境に合わせて形だけでも一応変更
- sslファイル名に合わせて SSLCertificateFile と SSLCertificateKeyFile を変更
- ファイル置き場のディレクトリ c:\usr\Apache2.2\conf\ssl の作成と4000日有効なオレオレ証明書を作成(それぞれ一行で入力)
>cd C:\usr\Apache2.2
>md conf\ssl
>bin\openssl req -config conf\openssl.cnf -new -out my-server.csr
(pass phrase 入力後、色々問われるので適切に入力)
>bin\openssl rsa -in privkey.pem -out my-server.key
(pass phrase を間違えないように入力)
>bin\openssl x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 4000
>bin\openssl x509 -in my-server.cert -out my-server.der.crt -outform DER
- 生成されたファイル (my-server.der.crt, my-server.csr, my-server.key, .rnd, privkey.pem, my-server.cert)を C:\usr\Apache2.2\conf\ssl へ移動
- Apache を restart させ https://srv.home.local:8443/svn や https://srv.home.local:8443/projects へアクセスを確認
- ルーターのポートや「ルーティングとリモート アクセス」やら外部公開の諸設定を確認して設定
- PCでも携帯でも適当に外部からアクセスの確認
trac のセットアップはとりあえず以上で。
【step10/10. ViewVC 】
ViewVC の trunk をインストール
- trunk を http://viewvc.tigris.org/svn/viewvc/trunk/ から チェックアウトする
ユーザー:guest / パス:なし - チェックアウトしたディレクトリから
> python viewvc-installインストール先は適当に (今回は c:\usr\viewvc-1.1-dev ) - viewvc.conf を適当に編集、とりあえず変更点は4箇所
c:\usr\viewvc-1.1-dev\viewvc.conf#cvs_roots = cvs: /home/cvsroot
root_parents = D:\SVN : svn
#default_root = cvs
allowed_views = markup, annotate , tar, co- 2箇所コメントアウトする、cvs_roots と default_root
- repository一覧が /viewvc で見えるように root_parents をrepositoryに合わせて指定
- tar でのダウンロードと、ファイルのダウロードを有効にするために、allowed_views に tar, co を追加
- httpd.conf へ ViewVC 関連を httpd.conf の末尾に追加
[for ViewVC : httpd.conf]
- tar とか gzip とか DiffUtils と各々の requirements なモジュールを解凍してバイナリを c:\usr\bin に置く
- Apache を restart
- http://srv.home.local:8080/viewvc や https://srv.home.local:8443/viewvc で見え方の確認