replyツイート構成管理ツールのSubversionと、そのリポジトリの可視化&要求管理ツールのTracをインストールしたサーバーにおいて、実践的なプロジェクト(リポジトリとTrac環境)の作成の手順をレポートします。はじめに以下の様な、レンタルサーバーにSubversion、Tracをインストールする記事を書いてきました。エックスサーバーにSubversionをインストールするエックスサーバーにTracをインストールするさくらレンタルサーバーにSubversionとTracをインストールするそれらの記事に引き続き、実践的なプロジェクト(SubversionのリポジトリとTrac環境)を作成する手順をレポートします。(リポジトリ:ソースコード等コンテンツの貯蔵庫。)読者にはレンタルサーバーでのサイトの管理者を想定していますが、自サーバーにてSubversion+Tracを運用しようとしている方にも、パス等を読み替えて頂くことで参考になるのではないかと思います。最後にプロジェクト作成手順の自動化についても考察します。プロジェクトディレクトリの作成まずディレクトリ構成を決定し、プロジェクト格納ディレクトリを作成します。ディレクトリ構成ディレクトリ構成は以下のようにします。~/projects/.htpasswd将来的にプロジェクトが増えた場合には、~/projects/repos以下にリポジトリを、~/projects/trac/以下にtrac環境を、プロジェクトごとに同じ名前で追加していくことを想定しています。Tracのデプロイ先は以下とします。(デプロイ:WEBで見えるように展開する、の意。)さくらレンタルサーバーエックスサーバーディレクトリ~/www/projects~/user.xsrv.jp/public_html/projectsURLhttp://user.sakura.ne.jp/projects/http://user.xsrv.jp/projects/(userは各位のユーザー名になります。)ディレクトリの作成SSHにてサーバーにログインし、プロジェクト格納ディレクトリを作成します。各位の環境に合わせて読み替えて下さい。さくらのcshに合わせています。)trunk、branches、tagsとはinitial-dirsはリポジトリ作成時にインポートするデフォルトのディレクトリ構成のつもりです。その中に作成したtrunk、branches、tagsは、Subversionにて推奨されているディレクトリ構成です。trunkがご本家で、通常はここを更新していきます。きりが良いところ(例えばパッケージにバージョンを付けるタイミング)でtagsにコピーを作成します。branchesでは、本家の更新に影響を受けない形で改変やバグフィックスをしたい場合に本家(trunk)からここにコピーを作成し、独自に改変を進めます。目的を達成したら本家に改変を反映させます。次にTracの管理ユーザーを作成しますが、Tracページの認証方式によって手順が異なります。認証方式HTTPの認証方式の一般的なものとして、BASIC認証とダイジェスト認証があります。両者とも、ユーザーがブラウザで入力したユーザー名とパスワードを、サーバーサイドにあらかじめ作成したアカウントと照合する、というシンプルなものです。BASIC認証においては、アカウント情報は通信路で(SSLを使わない限り)暗号化されません。これに対してダイジェスト認証では、アカウント情報はハッシュ化され、通信を傍受されたとしても解読が困難です。エックスサーバーではBASIC認証もダイジェスト認証も可能です。さくらレンタルサーバーではダイジェスト認証はできません。いうことで、ここで認証方式を決定し、それぞれの手順にお進み下さい。(さくらレンタルサーバーではBASIC認証にせざるを得ませんが。)BASIC認証の場合.htpasswdの作成.htpasswdという名前でパスワードファイルを作成します。admin-useradmin-userは管理ユーザー名のつもりですので、任意に変更して下さい。このあとパスワードを聞かれるので、2回入力します。.htaccessの作成.htaccessはWEBで表示されるディレクトリに置くものですが、プロジェクトディレクトリにひな型を作成しておき、それをデプロイ時にコピーすることにします。.htaccessviを起動し、以下のファイルを作成します。(ローカルで作成し、FTPでPUTしてもかまいません。valid-user&lt;/IfModule&gt;(4行のuserは各位のユーザー名です。)BASIC認証の場合はここまでです。「プロジェクトの作成」にお進み下さい。ダイジェスト認証の場合.htpasswdの作成.htpasswdという名前でパスワードファイルを作成します。admin-useradmin-userは管理ユーザー名のつもりですので、任意に変更して下さい。このあとパスワードを聞かれるので、2回入力します。.htaccessの作成.htaccessはWEBで表示されるディレクトリに置くものですが、プロジェクトディレクトリにひな型を作成しておき、それをデプロイ時にコピーすることにします。.htaccessviを起動し、以下のファイルを作成します。(ローカルで作成し、FTPでPUTしてもかまいません。valid-user&lt;/IfModule&gt;(5行のuserは各位のユーザー名です。)ダイジェスト認証の場合はここまでです。続いてリポジトリとTracの環境を作成し、WEBで表示できるようにデプロイします。以下のコマンドでtest-projectのリポジトリとTrac環境を作成します。TRAC_ADMIN2行目の入力の後に、「Congratulations!」と表示されていればとりあえず成功です。(メッセージを良く見ると、実はWarningが表示されていますが後ほど解決します。)3行目の「admin-user」は前章で作成した管理ユーザー名になります。Tracのデプロイ続けてTrac環境がWEBで表示されるようデプロイします。~/www/projects/cgi-bin/各行の「~/www/」はさくらレンタルサーバーの場合ですで、エックスサーバーの場合は「~/user.xsrv.jp/public_html/」、その他の環境の方は各位の環境に合わせて読み替えて下さい。以降デプロイしたディレクトリを「tracのドキュメントルート」と表します。WEBブラウザでの設定ここでブラウザより「http://user.sakura.ne.jp/projects/cgi-bin/trac.cgi」あるいは「http://user.xsrv.jp/projects/cgi-bin/trac.cgi」にアクセスします。(以下「tracサイト」と表します。)表示確認ユーザー名とパスワードを聞かれるので、管理ユーザー名(admin-user)とパスワードを入力します。上のようなページが表示されていれば成功です。(表示されているWarningにはこの後対処します。)もしパスワードが聞かれなかったり、ページが表示されない場合は、サーバーのエラーログや、以下をご確認下さい。tracのドキュメントルート以下にファイルが展開されているか(tracのドキュメントルート)/cgi-bin以下のファイルのパーミッションは755か.htaccessの記述は間違っていないかTracの管理ツールでの設定メインメニューの右端に表示されている「Admin」をクリックします。左メニューから「Plugins」をクリックします。1.0.ja1」をクリックします。プラグインのリストが展開します。ページの下方に「SubversionConnector」があるので、その右側のチェックボックスをチェックします。その下の3つも、Subversionの表示を適当に変換してくれそうなのでチェックします。changes」をクリックします。プラグインを有効化した旨が表示されます。ここではまだWarningが表示されていますが、この後は表示されなくなります。その他の設定その他、管理メニューにて必要な設定を行います。SystemのComponents、Milestones、Versionsは一度すべて削除して、プロジェクトに適当なものを適宜追加すればよいでしょう。Typesなどは、(日本語で)適当に作りなおしたほうが良いと思います。(また別の機会に、私の例を示せたら、と思います。SSHのコンソールに戻り、最後の設定をします。場所はprojectsディレクトリにいると思いますが、一応pwdでご確認下さい。post-commitの作成リポジトリの更新がTracに伝達されるよう、リポジトリにpost-commitフックを作成します。以下のコマンドでviを起動します。repos/test-project/hooks/post-commit作成するファイルの内容は以下です。$REV(6行のuserは各位のユーザー名になります。)パーミッションを設定します。repos/test-project/hooks/post-commit初期ディレクトリのインポートリポジトリに、最初の方に作成した初期ディレクトリをインポートします。先のpost-commitに間違いがあれば、ここでErrorかWarningが表示されると思います。その場合はpost-commitの内容とパーミッションを確認します。Tracの確認ブラウザに戻り、Tracを確認します。上部メニューの「Timeline」をクリックします。タイムラインの先頭に、初期ディレクトリをインポートした時のログが表示されています。Source」をクリックします。インポートした初期ディレクトリが確認できます。これから以上でインストールしたSubversion、Tracが動作することを確認しました。これから何をすべきか、を書きたいと思います。試しにコンテンツ(ソースコード)を追加してみたい方もいらっしゃると思います。TortoiseSVNを使ってみるWindowsのExplorerのアドオンである、TortoiseSVNを使ってみたい場合は、「エックスサーバーにSubversionをインストールする」の「TortoiseSVNのインストールと設定」以降をご参照下さい。(さくらについても追記しました。)エックスサーバーの場合はその前の章「鍵ファイルの作成」も必要になります。Eclipseを使うEclipse上からソースコードなどをリポジトリに格納する場合は、「EclipseをSubversionに接続する」をご参照下さい。いずれの記事も、各ツールの実際の使用法(更新、コミット、追加、削除、リネーム等)までは解説するに至っていません...。プロジェクトの削除test-projectという名前でプロジェクトを作成しましたが、名前が気に入らなかったり、お試しが終ったりで、削除したくなることがあると思います。DBとかSqliteとか、ディレクトリ内のファイルにデータを格納するデータベースですのでディレクトリごと削除すればOKです。具体的には以下のコマンドになります。–rf」って、その後のパスを間違えると大変なことになりますので注意しましょう。新しいプロジェクトを追加するには、プロジェクト名である「test-project」を読み替えて、「プロジェクトの作成」から「リポジトリの初期設定」までの章を実行します。「Tracのデプロイ」は必須ではありません。本稿ではまったく解説していませんが、たとえばtracサイトのロゴ画像やfaviconなどは、~/projects/trac/(プロジェクト名)/conf/trac.iniを編集することで指定できます。新しいプロジェクトを追加するたびに上のようなtrac.iniを編集することは面倒ですので、trac環境を作成するときに継承を指定することができます。initenvコマンドは以下のようになります。System」の設定は、trac.iniではなくデータベースの中に格納されているようですので、面倒ですが再設定が必要です。Tracのマルチプロジェクト化trac.cgiはマルチプロジェクトに対応しており、環境変数「TRAC_ENV_PARENT_DIR」に、「/home/user/projects/trac」を設定すれば、新しいプロジェクトをデプロイし直さなくてもマルチプロジェクト対応になります。環境変数の設定は、http.confとか.htaccessでSetEnvすればよいのですが、レンタルサーバーではうまく行かない場合があります。その場合はソースコードを修正します。「(tracのドキュメントルート)/cgi-bin/trac.cgi」をエディタで開くと以下のようなpythonのコードが見られます。'/home/user/projects/trac/test-project'(後略)この部分の最後の行をコメントアウトして、一行を追加します。'/home/user/projects/trac'userは各位のユーザー名になります。pythonはインデントに意味がありますので、きちんと合わせましょう。(上のリストではインデントが無くなってしまっています。)プロジェクトのリスト表示これだけで「http;//(ドメイン)/projects/cgi-bin/trac.cgi」が、プロジェクトのリストを表示するようになります。味気ない表示ですが、ドットの後ろが各プロジェクトへのリンクになります。課題とまとめ以上、実践的なプロジェクト(リポジトリとtrac環境)の作成をレポートしてきました。繰り返しになりますが、プロジェクトの追加は、「プロジェクトの作成」から「リポジトリの初期設定」までの章を実行します。(「Tracのデプロイ」は除く。)手順がわかっていれば、それを自動化するスクリプトを作成できます。lightningとか、そういったバッチファイルが同梱されていて楽ちんなんですけど。)そのようなスクリプトの汎用的なやつは既に作っており、自分ではそれを使っています。System」の設定も継承するものです。)テストを実行し、公開可能な品質になれば公開するつもりですが、そのテストの実行がいつになるやらさだかではありません。tracに関して、複数プロジェクトのリストがあっさりしているだとか、さくらレンタルサーバーだと認証がBASICのみだとか、ログオフができないのが仕様だとか、mod_annoがないとアカウントがない人に公開できないとか、気に入らない点が多々あります。それらを解決するアイデアもあるのですが、今のところいつ試せるようになるか目処がついていません。(試す前にRedMineの方ががメジャーになるかも。)進捗がありましたら、また記事にします。コメントをキャンセルメールアドレスが公開されることはありません。