« 紙ヒコーキで大気圏外から | トップページ | 今更、、、 のだめ(ドラマ) Lesson1 »

2008年1月19日 (土)

Apache2.2 + Python2.5 + Trac0.11 + Subversion1.4 + ViewVC を Windows で

trac0.11 の beta1 が出てきて1ヶ月と少々、そろそろ正式版 が出てくることを期待しつつ忘れる前にメモ整理。
ここでのTrac はあくまでも 0.11beta1 の話(2008/01/19現在)なのでその点には注意。

Apache2.2.8 + Python2.5.1 + Trac0.11beta1 + Subversion1.4.6 + ViewVC

を Windows な自宅サーバ環境にオレオレ証明書でのSSLまで、はしょりつつ全部入りメモ。

【参考にしたサイトなど】

インストール手順をまとめていくれている方々、ツールを提供されているサイトには感謝多謝!!

【調達物】

1月19日ごろ現在で適当にゲットしたもの

 

【自宅サーバの状態】

  • サーバは 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 なバイナリが無いのでちょっと変則的な方法、不具合が出るかもしれないけれど今のところ無事

  1. Apache2.0用 svn-1.4.5-setup.exe をインストール、インストール先は C:\usr\Subversion
  2. Apache2.2用 svn-win32-1.4.6.zip を解凍してインストール場所 C:\usr\Subversion に上書きコピー

 

【step2/10. TortoiseSVN 】

あると便利(無いと不便)なのでインストール

  1. インストーラで本体をインストール、インストール先は c:\usr\TortoiseSVN
    Windowsの再起動を問われるが次と一度で済ませたいのでここでは再起動しない
  2. LanguagePack をインストール
    再起動を問われるのでここで再起動

TortoiseSVN のヘルプ『サーバのセットアップ』は毎度の事ながらお世話になりっぱなし。
必要に応じて WinMerge もインストールしておく。
再起動後に TortoiseSVN の設定で言語を日本語への変更とダイアログのフォントは適切に変更するのを忘れずに。

【step3/10. Apache (1/3) 】

まず Apache 本体インストールと基本的な動作確認

  1. apache_2.2.8-win32-x86-openssl-0.9.8g.msi をカスタムでインストーラなりにインストール、インストール先は c:\usr\Apache2.2 に変更
    毎度ながら IIS とかち合うので、動作確認は httpd.conf を書き換えてから
  2. C:\usr\Apache2.2\bin\conf\httpd.conf の編集
    1. IIS とぶつからないようにポートを変更
      Listen 8080
    2. DocumentRoot の C:/usr/Apache2.2/htdocs を自分の環境に合わせてD:/www に書き換え
      DocumentRoot "D:/www"

      <Directory "D:/www">
    3. ディレクトリの一覧が寂しいのと、マニュアルぐらいローカルで読めるようにしたいので、コメントアウトを取って有効にする
      httpd-manual.conf

      httpd-autoindex.conf
  3. タスクトレイのアイコンなどから Apache を start してひとまずアクセス可能か確認
  4. 動作を確認できたら Apache は stop させておく

 

【step4/10. Subversion (2/2) 】

Apache と Subversion の連携をセットアップ

  1. Apache用のモジュール mod_dav_svn.somod_authz_svn.so を C:\usr\Subversion\bin から C:\usr\Apache2.2\modules へコピー
  2. httpd.conf の編集
    1. コメントアウトを取って有効にする
      LoadModule dav_module modules/mod_dav.so
      LoadModule dav_fs_module modules/mod_dav_fs.so
    2. モジュールが列挙されている直後辺りに追加
      ##
      ## for subversion
      ##
      LoadModule dav_svn_module modules/mod_dav_svn.so
      LoadModule authz_svn_module modules/mod_authz_svn.so
    3. 最後あたりに追加
      [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
      をダウンロードして、DocumentRoot である d:\www に置いておく
      menucheckout.ico は menucheckout.gif (アイコンは 16x16 のデータを gif で保存)として作り直して svnindex.xsl の menucheckout.ico に関する箇所を合わせて書き直しておくと、IE からアクセスしたときにチェックアウトのアイコンが表示されて多少見栄えが良くなる。
      IE をそもそも使っていないので、労のわりに報われない変更。。。
  3. Apache と start してwebブラウザや TortoiseSVN からリポジトリへのアクセスを確認しておく
  4. 動作を確認できたら Apache は stop させておく

 

【step5/10. Apache (2/3) 】

所詮自宅サーバで細かく逐一認証の設定は面倒なのでWindowsドメイン認証一括
basic認証とか他の方法は割愛

  1. ゲットしてきた mod_auth_sspi-1.0.4-2.2.2.zip を解凍して mod_auth_sspi.so を Apache のモジュールディレクトリ c:\usr\Apache22\modules へコピー
  2. httpd.conf を編集
    1. モジュール一覧で auth 関連がある辺りの前に追加
      ## for windows domain auth
      LoadModule sspi_auth_module modules/mod_auth_sspi.so
    2. Subversion 用に追加したディレクティブを再編集
      [for subversion repository : httpd.conf]
  3. Apache を start
  4. ドメインのアカウントで webブラウザや TortoiseSVN からリポジトリにアクセスできる事を確認する
  5. 動作を確認できたら Apache は stop させておく

 

【step6/10. Python 】

Python本体と関連物をインストール

  1. インストーラ python-2.5.1.msi に任せて C:\usr\Python25 へインストール
  2. 追加で Python for Windows extensions をインストーラ pywin32-210.win32-py2.5.exe に任せてインストール
  3. システム環境変数の Path に C:\usr\Python25C:\usr\Python25\Scripts を追加
  4. mod_python をインストーラ mod_python-3.3.1.win32-py2.5-Apache2.2.exe に任せてインストール
    インストール途中で Apache のインストール先を問われるので間違えずに指定
  5. httpd.conf を編集
    1. モジュールが列挙されている最後辺りに追加
      ##
      ## for mod_pyhotn
      ##
      LoadModule python_module modules/mod_python.so
  6. Subversion の Python Bindings のインストーラ svn-python-1.4.6.win32-py2.5.exe に任せてインストール

念のために再起動しておく。

【step7/10. Trac 】

exeなインストーラの方がアンインストールしやすいような気がしつつも、折角なので Easy install 主体で。

  1. Easy install の ez_setup.py を名前を付けてファイルとして保存
  2. Easy install をインストール、ez_setup.py を保存した場所で
    >python ez_setup.py
  3. 引き続き
    >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 のインストール

  1. 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
  2. 作業が終わったら trac-admin を exit して終了
    Trac [D:\Trac\rensyu]> exit
  3. Apache にTrac用の設定を追加すべく httpd.conf を編集
    1. Trac の一覧が /projects としてアクセスできる使い方をしたいので次のような感じで httpd.conf の末尾に追加
      [for Trac : httpd.conf]

      ★beta1 から正式版になったときにパスの書き換えに注意★
  4. Apache を restart して http://srv.home.local:8080/projects にアクセスして Trac の一覧が表示されるか確認
  5. 各々の trac に入り、表示されたら、login でログインしてメニューの右端に追加される Admin 利用が可能か確認
  6. 試しにplugin を追加
    IniAdminPlugin を追加してみる
    1. 0.11 用をダウンロードして解凍
    2. 解凍して setup.py のある場所で
      > python setup.py bdist_egg
    3. 全体で有効にしたいでの作成した場所で
      > easy_install dist\IniAdmin-0.2-py2.5.egg
    4. Trac の Admin メニューの Plugins に現れる iniadmin の Enabled にチェックを入れて [Apply changes]
    Table of Contents Macro を追加してみる
    1. Easy install で0.11用をインストール
      > easy_install http://trac-hacks.org/svn/tocmacro/0.11
    2. 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。

  1. 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"
    1. ポートの変更
    2. SSLMutex の行をコメントアウト
    3. DocumentRoot など 自宅サーバの環境に合わせて形だけでも一応変更
    4. sslファイル名に合わせて SSLCertificateFile と SSLCertificateKeyFile を変更
  2. ファイル置き場のディレクトリ 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
  3. 生成されたファイル (my-server.der.crt, my-server.csr, my-server.key, .rnd, privkey.pem, my-server.cert)を C:\usr\Apache2.2\conf\ssl へ移動
  4. Apache を restart させ https://srv.home.local:8443/svnhttps://srv.home.local:8443/projects へアクセスを確認
  5. ルーターのポートや「ルーティングとリモート アクセス」やら外部公開の諸設定を確認して設定
  6. PCでも携帯でも適当に外部からアクセスの確認

 

trac のセットアップはとりあえず以上で。


【step10/10. ViewVC 】

ViewVC の trunk をインストール

  1. trunk を http://viewvc.tigris.org/svn/viewvc/trunk/ から チェックアウトする
    ユーザー:guest / パス:なし
  2. チェックアウトしたディレクトリから
    > python viewvc-install
    インストール先は適当に (今回は c:\usr\viewvc-1.1-dev )
  3. 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
    1. 2箇所コメントアウトする、cvs_rootsdefault_root
    2. repository一覧が /viewvc で見えるように root_parents をrepositoryに合わせて指定
    3. tar でのダウンロードと、ファイルのダウロードを有効にするために、allowed_views に tar, co を追加
  4. httpd.conf へ ViewVC 関連を httpd.conf の末尾に追加
    [for ViewVC : httpd.conf]
  5. tar とか gzip とか DiffUtils と各々の requirements なモジュールを解凍してバイナリを c:\usr\bin に置く
  6. Apache を restart
  7. http://srv.home.local:8080/viewvchttps://srv.home.local:8443/viewvc で見え方の確認

 

【雑感】

『 教科書代わりにしているサイトからリンクが張ってもらっていると恐縮してしまう、、、というかアセる!! 』なのはココだけの話

以下ダラダラと雑感

  • trac-admin が trac-admin.exe へと Windows の exeな実行ファイルになったのでかなり楽
  • 携帯のPCサイトビューアーでもTracが結構見えるのはちょっとした感動 W51H にて
  • 携帯でドメインパスワードでログインするときパスワードの長さとめんどくささに絶望した
  • 以前に比べ格段に簡単になったと思った trac のセットアップが書き出してみると以前とあんまり変わらないような、、、redMine の方がやっぱり楽に完了する、Trac月 は偉大!
  • 個人的には待ちに待った Trac の workflow のカスタマイズ
  • ViewVC で設定を間違えてエラーになったときキャッシュの効き(?)が強くて、見え方確認にはブラウザのキャッシュを毎回クリアするか毎回異なるリポジトリを見た方が良いように感じるのは設定がヘボいせい???
  • Trac0.11 正式版がリリースされたときにこのエントリどうしよう???
  • 微妙なタイミングで Apache2.2.8 がリリースされたので2.2.6から若干変更(2008/01/20)
  • 意図せず抜けていた部分、おかしな部分があったので追加修正(2008/01/21)
  • svnindex.xsl の入手時のユーザーとパスに関して追記(2008/01/28)

|

« 紙ヒコーキで大気圏外から | トップページ | 今更、、、 のだめ(ドラマ) Lesson1 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/60348/17755723

この記事へのトラックバック一覧です: Apache2.2 + Python2.5 + Trac0.11 + Subversion1.4 + ViewVC を Windows で:

« 紙ヒコーキで大気圏外から | トップページ | 今更、、、 のだめ(ドラマ) Lesson1 »