IISでTracを動かそう。
とはいうものの、CGI上のPythonでTracをキックするとタイムアウトするほど重い…
ので、今回はRunning Trac on IIS 6 using AJPに書いてある方法を使うことにします。
> http://trac.edgewall.org/wiki/TracOnWindowsIisAjp
IIS 6.0がフロントエンドサーバーとしてリクエストを受け付け、
AJPコネクターによって、Tracデーモンへ転送します。
…なんか、この構成を見ると、Cosminexusを思い出してしまうのは、職業病?
(HWSがフロント、リダイレクターによってAJP接続し、
uCosminexus Application Serverへ転送するので。)
…とか言う話をすると、どこの人だかわかりそうですがw
で、Tracのwikiに親切後丁寧に全部書いてあるので、その通り設定します。
とはいうものの、tracのデーモンをマシンを再起動するたびに
毎度毎度コマンドを打って起動するのも面倒なので、
サービス化しちゃいましょう。
Windows Server 2003 Resource Kit Tools
http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&DisplayLang=en&displaylang=en
をダウンロードして、実行ファイルをサービスとして実行できる、srvany.exeを使用します。
initsrvでsrvanyをサービスとして追加します。(たぶん、sc.exeでもできるとおもう)
> initsrv TracService “C:\\Program Files\\Windows Resource Kits\\Tools\srvany.exe” -a “NT AUTHORITY\\LocalService”
外部ネットワークや管理者権限は不要なので、LocalServiceにしました。
レジストリエディタで以下のキーを作成します。
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\TracService\\Parameters
その配下に、
Application(文字列値):
C:\\develop\\python2.6.2\\python.exe
AppParameters(文字列値):
“C:\\develop\\python2.6.2\\Scripts\\tracd-script.py” –port=8009 –protocol=ajp –unquote –env-parent-dir=”D:\\repository\\trac” –base-path=/develop/trac
AppEnviroment(複数行文字列値):
Path=C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\develop\\python2.6.2;C:\\develop\\python2.6.2\\Scripts;C:\\develop\\MySQL Server 5.1.36\\bin
SystemDrive=C:
SystemRoot=C:\\WINDOWS
WinDir=C:\\WINDOWS
ProgramFiles=C:\\Program Files
HGENCODING=utf_8
PYTHON_EGG_CACHE=D:\\repository\\egg-cache
APR_ICONV_PATH=C:\\develop\\Subversion1.6.3\\iconv
といった感じで、起動パラメーターや環境変数を設定しました。
> net start TracService
サービスとして登録できました!