TracLightningの2系と3系を同居させてみた(結構適当)
2010/12/13 追記あり
サンプルプロジェクトのインターフェースがすっかり変わって話題の TracLightning3.0 ですが、今日現在で3.0.3がリリースされてます。
TracLightning3.0 の本質は見た目の変更ではなく、Trac本体のメジャーバージョンアップと増えすぎた同梱プラグインの整理にあります。
では早速移行しようと思ってもTrac本体のメジャーバージョンアップの影響確認と、今までの環境に別途入れたプラグインの調整などが必要になります。
vm立てて疑似環境作ってテストして〜と行きたいところですが Windows だとライセンスの兼ね合いもあったりで簡単ではありません。
そこで既にTracを運用しているサーバにリソースの余裕があったので同居させて検証してみることにしました。
無事、同居出来たので以下にその方法をメモ代わりに書いておきます。
あくまでも検証用なのでサービスで起動せずコマンドプロンプトからの起動ですので、その辺りはご了承を。*1
0.アジェンダ
作業としては
- 一旦別なPCにインストールして、それをコピーする。
- Apacheのポートを変更する
- Hudsonのポートを変更する
- Pyhton周りのPathが重複しないようにする
- 今動いてるTracを止めない(←一番重要w)
を念頭に置いて作業をすると目標が達成できます。
1.一旦別なPCにインストールする
これは TracLightning は一部ですが環境変数を操作します。
Trac稼働中サーバに直接インストールすると動かなくなるためにこれを回避します。
インストールする先はドライブ構成が同じマシンが望ましいですが、それが出来ない場合は subst などで仮想ドライブなどを割り当てると良いでしょう。
C:\>c:\subst D: C:\TEST
また当然ですが稼働中の環境と同じパスにしてしまうと後の変更が面倒なので、必ずデフォルトの TracLight ではなく Trac303 などに稼働中のものと異なる path にインストールしましょう。
2.Apacheのポートを変更する
新たにインストールした TracLightning の Apache のポートを変更します。
%TRAC_LIGHT_HOME%\CollabNetSVN\httpd\confにあるhttpd.confを修正します。
53行目辺りに
Listen 80
とある部分を
Listen 8080
のように任意のポートに変更します。(この場合は8080)
Hudson用Proxyポートも変更します。
608行目辺りの
ProxyPass http://127.0.0.1:8010/hudson
ProxyPassReverse http://127.0.0.1:8010/hudson
とある部分を
ProxyPass http://127.0.0.1:8020/hudson
ProxyPassReverse http://127.0.0.1:8020/hudson
のようにして任意のポートに変更します。(このばあいは8020)
3.Hudsonのポートを変更する
%TRAC_LIGHT_HOME%\hudson にある hudson.bat でのポート指定を変更します。
"%JAVA_CMD%" -Duser.home="%TL_PROJECT_HOME%\hudson" -jar hudson.war --prefix=/hudson --ajp13Port=8009 --ajp13ListenAddress=127.0.0.1 --httpListenAddress=127.0.0.1 --httpPort=8010
の "----httpPort=8010" の部分を
"%JAVA_CMD%" -Duser.home="%TL_PROJECT_HOME%\hudson" -jar hudson.war --prefix=/hudson --ajp13Port=8009 --ajp13ListenAddress=127.0.0.1 --httpListenAddress=127.0.0.1 --httpPort=8020
のように、http.confで指定したポート(この場合は8020)に変更します。
4.setenv.batにPYTHONPATHの追加
%TRAC_LIGHT_HOME%\bin にある setenv.bat に PYTHONPATH の設定を追加します。
環境変数を設定するsetenv.batでは PYTHONHOME は指定されていますが、PYTHONPATH の設定がなく既存環境と重複してしまいますので、そのための処置になります。
setenv.bat の最終行に
SET PYTHONPATH=%TRAC_LIGHT_HOME%\python\DLLs\;%TRAC_LIGHT_HOME%\python\Lib;%TRAC_LIGHT_HOME%\python\Lib\plat-win;%TRAC_LIGHT_HOME%\python\Lib\lib-tk;%TRAC_LIGHT_HOME%\python\Lib\site-packages
をして追加して PYTHONPATH の設定を行うようにします。
また最終行に以下を追加します。2010/12/13 追記
set PATH=%PYTHONPATH%;%PATH%
5. start.bat の変更
2010/12/13 追記あり
setenv.batと同様にPYTHONPATHの追加とPATHの設定の追加を行います。(5行目あたり)
SET PYTHONPATH=%TRAC_LIGHT_HOME%\python\DLLs\;%TRAC_LIGHT_HOME%\python\Lib;%TRAC_LIGHT_HOME%\python\Lib\plat-win;%TRAC_LIGHT_HOME%\python\Lib\lib-tk;%TRAC_LIGHT_HOME%\python\Lib\site-packages
set PATH=%PYTHONPATH%;%PATH%
またstart.bat で既に TracLightning と言うサービスが起動している場合には、停止後に再起動するようになっています。
同居前提の場合は先に動いている TracLightning を止められては敵いませんので、その部分をコメントアウトします。
9行目の
httpd.exe -n TracLightning -k stop
とある部分を
REM httpd.exe -n TracLightning -k stop
にしてコメントアウトします。
6. ショートカットの変更
同居を前提とするとスタートメニューに含まれるショートカットの名前が重複して分かりにくいので、各ショートの頭に TL3 とでも追加しておくと分かりやすくなります。
スタートメニューにある「サービスのインストール」「サービスのアンインストール」は削除しておいた方が安全だと思います。*2
7. 稼働中の環境へのコピー
インストールした TracLightning のフォルダー丸ごとと、スタートメニューのショートカットを、同居させたいTrac稼働中のサーバにコピーします。
8. 起動
コピーしたショートカットの「コマンドプロンプトから実行」で起動させます。
ブラウザで"http://127.0.0.1:8080/trac/SampleProject"として表示されれば無事完了です。