西海岸より

つらつらざつざつと

ApacheでTracを動かす

mod_python(Python2.6)のwindowsバイナリの作成

必須モジュール(参考サイトより)

Windows XP SP3 (32-bit)
Python 2.6.1
Visual Studio 2008 Team Edition (with C++ and Platform SDK)
Subversion
mod_python from SVN, I'm using revision 687027
Apache 2.2.11

必須モジュールのインストール
  • PyWin32と、コンパイラのVisualStudioのみ追加インストールでOK。
mod_pythonの作成手順
  • ソースの修正(PSP("Python Server Pages")モジュールは要らないらしい)

In mod_python\dist\setup.py.in edit line 171 from:
ext_modules = [ModPyModule, PSPModule]
to:
ext_modules = [ModPyModule]#, PSPModule]

[スタート] -> [全てのプログラム] -> [Microsoft Visual Studio 2008] -> [Visual Studio Tools] -> [Visual Studio 2008 Command Prompt]

    • mod_pythonのdistフォルダまで移動し、apacheのインストールフォルダを指定

set APACHESRC="C:\Apache2.2"

      • ここで下記のように半角スペースがあるとbuildに失敗するので、Apacheを入れ直す必要あり

set APACHESRC="C:\Program Files\Apache Group\Apache2"

    • 下記バッチでbuildを実行

build_installer.bat

    • 以下のエラーが出た場合

LINK : fatal error LNK1181: 入力ファイル 'libapr.lib' を開けません。
error: command '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.exe"' failed with exit status 1181

      • mod_python_src/dist/setup.py.inで、以下の行(line141)を編集

(変更前) libraries = ['libhttpd', 'libapr', 'libaprutil', 'ws2_32']
(変更後) libraries = ['libhttpd', 'libapr-1', 'libaprutil-1', 'ws2_32']

  • mod_python_src/dist/に作成されたdistフォルダのexeを実行しmod_pythonをインストール

mod_python-3.3.2-dev-20080819.win32.py2.6.exe

Apacheの設定
  • Apacheの設定ファイル(httpd.conf)で以下をLoadModule群の最後に追加

LoadModule python_module modules/mod_python.so

  • Tracのパスを追加。


SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv "c:\workspace\trac\main"

Apacheで認証の設定

  • SVNTracの両方に同じ認証をかける


DAV svn
SVNParentPath "c:/svn"
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile "C:/Apache2.2/etc/svnpasswd"
Require valid-user


AuthType Basic
AuthName "Trac"
AuthUserFile "C:/Apache2.2/etc/svnpasswd"
Require valid-user

    • svnpasswdはapacheのパスワードファイル。(要作成。htpasswd作成でググるとできます)
      • ユーザ名:sample を設定しておきます。
  • tracの認証リストの確認

C:\Python26\Scripts>trac-admin.exe c:\workspace\trac\main permission list

  • ユーザ(sample)にTRAC_ADMINの権限を追加

C:\Python26\Scripts>trac-admin.exe c:\workspace\trac\main permission add sample TRAC_ADMIN

    • sampleでログインした場合、admin権限でtracを操作が可能。
    • sampleユーザは、svnpasswdで定義されている必要があります。

以上で設定終了。