<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>はらぺこ日誌 &#187; Trac</title>
	<atom:link href="https://blog.harapeko.jp/tag/trac/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.harapeko.jp</link>
	<description>株式会社はらぺこ 公式ブログ</description>
	<lastBuildDate>Mon, 30 Oct 2017 14:32:56 +0000</lastBuildDate>
	<language>ja</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.2</generator>
	<item>
		<title>Trac で .wsgi ファイルを複数設定する場合の留意点</title>
		<link>https://blog.harapeko.jp/2013/03/21/trac_with_mod_wsgi/</link>
		<comments>https://blog.harapeko.jp/2013/03/21/trac_with_mod_wsgi/#comments</comments>
		<pubDate>Thu, 21 Mar 2013 06:59:03 +0000</pubDate>
		<dc:creator><![CDATA[村山 俊之]]></dc:creator>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[Trac]]></category>
		<category><![CDATA[サーバー管理]]></category>

		<guid isPermaLink="false">http://blog.harapeko.jp/?p=283</guid>
		<description><![CDATA[小ネタですが… 重要な Note: 複数の .wsgi ファイルを使用する場合 (それぞれのファイルに別個の  [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>小ネタですが…</p>
<blockquote cite="http://developer.harapeko.jp/trac/original/ideanote/wiki/TracModWSGI" title="Trac と mod_wsgi">
<p>
<strong>重要な Note:</strong> 複数の <tt>.wsgi</tt> ファイルを使用する場合 (それぞれのファイルに別個の Trac environment を設定するケースなど) は、 <tt>os.environ['TRAC_ENV']</tt> には Trac environment のパスを <em>設定しない</em> でください。この方法を使うと、別の Trac environment の設定が Trac にロードされてしまうことがあります。 (以前にロードした Trac environment のパスが使われてしまいます。) この問題は <tt>.wsgi</tt> ファイルの内容を下記の通り変更することで回避できます:
</p>
<div class="code">
<pre><span class="kn">import</span> <span class="nn">os</span>

os<span class="o">.</span>environ<span class="p">[</span><span class="s">'PYTHON_EGG_CACHE'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'/usr/local/trac/mysite/eggs'</span>

<span class="kn">import</span> <span class="nn">trac.web.main</span>
<span class="k">def</span> <span class="nf">application</span><span class="p">(</span>environ<span class="p">,</span> start_response<span class="p">):</span>
  environ<span class="p">[</span><span class="s">'trac.env_path'</span><span class="p">]</span> <span class="o">=</span> <span class="s">'/usr/local/trac/mysite'</span> 
  <span class="k">return</span> trac<span class="o">.</span>web<span class="o">.</span>main<span class="o">.</span>dispatch_request<span class="p">(</span>environ<span class="p">,</span> start_response<span class="p">)</span>
</pre>
</div>
</blockquote>
<p><span id="more-283"></span><br />
ここで、</p>
<pre>
os.environ['TRAC_ENV_PARENT_DIR'] = '/path/to/parent-dir'
</pre>
<p>を使っていた場合、これを回避コードに置き換えるには、 <code>environ</code> の添え字を <code>'trac.env_parent_dir'</code> としてあげればいいみたいです。</p>
<pre>
def application(environ, start_response):
        environ['trac.env_parent_dir'] = '/path/to/parent-dir'
        return trac.web.main.dispatch_request(environ, start_response)
</pre>
<p>弊社の場合、一方を公開のプロジェクト、もう一方を非公開のプロジェクト (SSL 通信限定でパスワード保護) としていたのに、リロード繰り返したら公開の方の URL が非公開の内容を指していたりで機密的にかなりやばいことになっていた <tt>(^_^;;;</tt> ので、似たようなことをやろうとしている方は厳重に注意が必要です…。</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.harapeko.jp/2013/03/21/trac_with_mod_wsgi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>会社サーバーをさくらの VPS に移転しました。</title>
		<link>https://blog.harapeko.jp/2010/10/15/move-to-sakura-vps/</link>
		<comments>https://blog.harapeko.jp/2010/10/15/move-to-sakura-vps/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 07:54:44 +0000</pubDate>
		<dc:creator><![CDATA[村山 俊之]]></dc:creator>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[活動記録]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Postfix]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Trac]]></category>
		<category><![CDATA[サーバー管理]]></category>
		<category><![CDATA[ドメイン]]></category>

		<guid isPermaLink="false">http://blog.harapeko.jp/?p=140</guid>
		<description><![CDATA[会社サーバーとして、これまでファーストサーバさんのデルタ1 というサービスを利用させて頂いていたのですが、のっ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>会社サーバーとして、これまで<a href="http://www.fsv.jp/">ファーストサーバ</a>さんの<a href="http://www.senyu.jp/dt/">デルタ1</a> というサービスを利用させて頂いていたのですが、のっぴきならない事由 (ごくごく経済的な事情 T-T) により、<a href="http://www.sakura.ad.jp/">さくらインターネット</a>さんの<a href="http://vps.sakura.ad.jp/">さくらのVPS</a> というサービスに乗り換えることにしました。そして、その移転作業が完了致しましたので、ご報告申し上げます。</p>
<p>と、いっても、現状何かサービスを展開しているわけでも無し、本ブログもこれまで通りそのまま閲覧できますので、「だから何?」とか言われちゃうと困ってしまうわけですが…。</p>
<p>今回の移転作業に於きましては、<strong>すべての作業内容を逐次メモに取り、その内容を公開しております</strong>。弊社のように、既に他社の専用サーバや VPS を用いてサーバーを構築しているものの、とっても安価でよさげなさくらの VPS に移行したいなぁなどとお考えの方々に、少しでも参考になれば幸いです。</p>
<ul>
<li><a href="http://developer.harapeko.jp/trac/original/ideanote/wiki/HowTo/SakuraVpsSetup">さくらの VPS セットアップメモ</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>https://blog.harapeko.jp/2010/10/15/move-to-sakura-vps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>仕様の転載が完了しました。</title>
		<link>https://blog.harapeko.jp/2009/07/03/complete-spec-reproduction/</link>
		<comments>https://blog.harapeko.jp/2009/07/03/complete-spec-reproduction/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 14:41:29 +0000</pubDate>
		<dc:creator><![CDATA[村山 俊之]]></dc:creator>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[活動記録]]></category>
		<category><![CDATA[otoco]]></category>
		<category><![CDATA[Trac]]></category>

		<guid isPermaLink="false">http://blog.harapeko.jp/?p=70</guid>
		<description><![CDATA[コマンド仕様、用語集の転載が完了。これで、既存の仕様の転載は完了しました。 用語集の中で脚注 (フットノート) [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://developer.harapeko.jp/trac/original/otoco/wiki/%E5%A4%96%E9%83%A8%E4%BB%95%E6%A7%98/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%84%E3%83%BC%E3%83%AB/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E4%BB%95%E6%A7%98">コマンド仕様</a>、<a href="http://developer.harapeko.jp/trac/original/otoco/wiki/%E5%A4%96%E9%83%A8%E4%BB%95%E6%A7%98/%E7%94%A8%E8%AA%9E%E9%9B%86">用語集</a>の転載が完了。これで、既存の仕様の転載は完了しました。</p>
<p>用語集の中で脚注 (フットノート) を使っていたので、急遽<a href="http://trac-hacks.org/wiki/FootNoteMacro">FootNoteMacro プラグイン</a>をインストールしました。 wget ではうまくダウンロードできなかったので、手元でダウンロードしたものを rsync で転送した後、</p>
<pre>
% unzip footnotemacro-r6151.zip
% cd footnotemacro/0.11
% sudo setup.py install
</pre>
<p>とし、Trac の管理メニューでプラグインを有効に。メインの仕事で使っているプロジェクトの Trac からも使えるようになっているはずなので、ちょくちょく使っていこうかな? …あっちはおいら一人で使ってるから脚注なんて使う機会無いか。(^_^;<br />
<span id="more-70"></span><br />
で、今日転載した部分なんですが、コマンド仕様は要求水準高いなぁー (^_^;A 。警告レベルとか指定できるようにしてたんだっけか。ていうか、MML パーサの中で警告を発行してコールバックに渡すみたいな仕組みを作らなきゃいけないってこと? まぁ、IDE 作ったとしても警告表示は確かにやりたいし、必要っちゃ必要か…。</p>
<p>…思い出した。そう言えば日本語が使えないコンソールにも対応するんだとか言って、警告の一覧を日本語と拙いエーゴで一生懸命書いてたっけ。(((((/^^)/</p>
<p>C++ 版での開発に際しては内部データのシリアライズ手段として XML ファイルの入出力に対応する予定なので、その辺の仕様も盛り込まないとですね…。</p>
<p>用語集は、まぁ、いいでしょう。(何がだｗ)</p>
<p>避難所では他に MIDI などに関する技術資料や旧プロジェクト関連の遺産 (なんと、さらに「旧」が存在するのです…!!) など、いくつかの資料文書が残っていて、中には有用なものもあるので、必要に応じて転載していく、事になるかも知れません。…SMF 仕様とか公開したら 1コンテンツとして読みたがる人もいるかなぁ。</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.harapeko.jp/2009/07/03/complete-spec-reproduction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trac の利用準備は概ね整いました。</title>
		<link>https://blog.harapeko.jp/2009/06/30/trac-setup-completed/</link>
		<comments>https://blog.harapeko.jp/2009/06/30/trac-setup-completed/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 23:52:46 +0000</pubDate>
		<dc:creator><![CDATA[村山 俊之]]></dc:creator>
				<category><![CDATA[活動記録]]></category>
		<category><![CDATA[otoco]]></category>
		<category><![CDATA[Trac]]></category>

		<guid isPermaLink="false">http://blog.harapeko.jp/?p=60</guid>
		<description><![CDATA[otoco project の Trac ですが、一通りのステータスを設定し終えて利用準備が概ね整いました。す [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://developer.harapeko.jp/trac/original/otoco">otoco project の Trac</a> ですが、一通りのステータスを設定し終えて利用準備が概ね整いました。すでにチケットを一つ立てて、作業を開始しています。</p>
<p>まずは、<a href="http://developer.harapeko.jp/trac/original/otoco/ticket/1">ERK 避難所に眠る仕様書の一部を Trac の wiki に転載する作業</a>からです。すでに、<a href="http://developer.harapeko.jp/trac/original/otoco/wiki/%E5%A4%96%E9%83%A8%E4%BB%95%E6%A7%98/MML%E4%BB%95%E6%A7%98/MML%E6%9B%B8%E5%BC%8F%E4%BB%95%E6%A7%98">MML 書式仕様</a>は転載を完了しています。で、演奏命令一覧の転載作業中にタイムアップ。</p>
<p>避難所の wiki は PukiWiki を利用していたのですが、Trac の wiki は wiki 文法が扱いやすいものの、テーブルに関する記法が貧弱なのが困りものですね…。reStructuredText はなんだか使いづらいし、HTML 直書きもできるけどそれもなぁ…。</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.harapeko.jp/2009/06/30/trac-setup-completed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>otoco の trac できました。</title>
		<link>https://blog.harapeko.jp/2009/06/26/otoco-trac/</link>
		<comments>https://blog.harapeko.jp/2009/06/26/otoco-trac/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 00:01:51 +0000</pubDate>
		<dc:creator><![CDATA[村山 俊之]]></dc:creator>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[活動記録]]></category>
		<category><![CDATA[CG]]></category>
		<category><![CDATA[otoco]]></category>
		<category><![CDATA[Trac]]></category>

		<guid isPermaLink="false">http://blog.harapeko.jp/?p=56</guid>
		<description><![CDATA[本当にただ作っただけですが…。中身はまだ全然いじくってません。ロゴは作ったけど (これにほとんどの時間を費やし [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://developer.harapeko.jp/trac/original/otoco">本当にただ作っただけですが…</a>。中身はまだ全然いじくってません。ロゴは作ったけど (これにほとんどの時間を費やしてしまった…^_^;)。</p>
<p>trac の設定自体は<a href="http://blog.harapeko.jp/2008/12/18/developer-repository-structure/">以前メモした内容</a>とほとんど相違ありません。強いて言えば、otoco プロジェクトは基本的にオープンであり、SSL を用いる必要がないのと、サイト全体を認証で隠す必要がないので、</p>
<ul>
<li><code>/etc/httpd/conf.d/ssl.conf</code> に記述していたのと同等の内容を <code>/etc/httpd/conf/httpd.conf</code> 内に直接記述した。</li>
<li>認証を行うロケーションを /trac/original/otoco/login とした。</li>
</ul>
<p>といった辺りが相違点になります。</p>
<p>なお、ロゴの作成には <a href="http://homepage2.nifty.com/pyonpyonpyopyon/">LogoShader</a> を利用させて頂きました。ツールを使い慣れていなかったこと、急ごしらえであったことなどにより、出来はイマイチですが…そのうち作り直しますか…。ともあれ、作者のツッダキミオさんに多謝!!</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.harapeko.jp/2009/06/26/otoco-trac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>開発環境構成検討中…。とりあえず Trac のインストールは完了。</title>
		<link>https://blog.harapeko.jp/2008/12/18/developer-repository-structure/</link>
		<comments>https://blog.harapeko.jp/2008/12/18/developer-repository-structure/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 11:15:54 +0000</pubDate>
		<dc:creator><![CDATA[村山 俊之]]></dc:creator>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Trac]]></category>
		<category><![CDATA[サーバー管理]]></category>

		<guid isPermaLink="false">http://blog.harapeko.jp/?p=11</guid>
		<description><![CDATA[さて、 SSL は使える状態になったので、いよいよ Subversion のリポジトリ構築と Trac の導入 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>さて、 SSL は使える状態になったので、いよいよ Subversion のリポジトリ構築と Trac の導入、セットアップに入ります。</p>
<h3>ファイル構成を検討する</h3>
<p>が、その前に、今後もこのサーバーを開発用途に使い続けていくことを考え、使い始めからファイル構成には気を遣ってみようと思い、以下のような方針を出してみました。</p>
<ul>
<li>すべての開発関連ファイルは /var/Developer の配下に配置する。</li>
<li>オリジナルの開発物と、外部から委託された案件とで全体を二分する。</li>
<li>その中で、プロジェクト毎にディレクトリを設ける。</li>
<li>プロジェクトのディレクトリ毎に、単独の svn リポジトリと trac リポジトリを設ける。</li>
</ul>
<p>これを例示すると、以下のようなファイル構成となります。</p>
<pre>/var/Developer/
  original/    # オリジナル用
    foo/    # プロジェクト foo
      svn/    # foo の svn リポジトリ
      trac/    # foo の trac リポジトリ
      .htdigest    # 内緒のプロジェクトの場合、 Trac にログオンするためのダイジェスト認証ファイル
    bar/    # プロジェクト bar
      svn/
      trac/
    baz/    # プロジェクト baz
    # ...
  trust/    # 外部から委託された案件用
    hoge/    # プロジェクト hoge
      svn/
      trac/
      .htdigest    # 委託案件は他人にみられちゃまずいので絶対必須
    fuga/    # プロジェクト fuga
    # ...</pre>
<h3>Trac の導入</h3>
<p>それでは Trac を導入しましょう。今回、以下のサイトを参考に、 Trac の導入を行いました。感謝!!<br />
<span id="more-11"></span></p>
<ul>
<li><a href="http://www.hanada.org/setting-up-trac-on-centos5">CentOS &amp; Trac | Hanada.Org</a></li>
<li><a href="http://d.hatena.ne.jp/hurvinek/20080829/1220001650">Trac インストールに挑戦 &#8211; メモチョウ</a></li>
</ul>
<p>基本的には前者のサイトを参考にしました。後者は python-genshi が yum からは install できなかった点について参考にさせていただきました。</p>
<p>やったことについては概ね以下の通りです。</p>
<ol>
<li>SELinux はそもそも使っていません。 iptables は使っていますが、 yum のポートはフィルタしていないのでここも設定不要でした。</li>
<li>Subversion 用 WebDAV モジュールはインストールだけしましたが、秘匿する案件については利用予定はないので、Apache 側の設定まではしませんでした。</li>
<li>今回は外部委託の案件なので、この案件のファイルにアクセスできる権限のためのグループを設けました。
<pre>
% sudo groupadd hoge
% sudo vim /etc/group # グループにユーザーを追加する
</pre>
</li>
<li>Subversion リポジトリを構築します。だいたい以下のような感じです。
<pre>% su -
% mkdir -p /var/Developer/trust/hoge/svn
% cd /var/Developer/trust/hoge/svn
% chown murachi.hoge .
% chmod g+w .
% chmod g+s .    # 配下のファイルのデフォルトグループ権限が統一される
% exit    # root のままリポジトリ作ると import 時に問題が起こるので…
% svnadmin create /var/Developer/trust/hoge/svn</pre>
<p>そして手元の環境から、既に作り始めているファイルをディレクトリごと import します。 Linux 環境、あるいは Cygwin などを利用しているならば、以下の通り。</p>
<pre>% svn import /path/to/hoge svn+ssh://murachi@onaka.harapeko.jp/var/Developer/trust/hoge/svn/trunk/hoge</pre>
<p><q><code>trunk/hoge</code></q> がインポート先パスに追加されているのは、メイントランクのプロジェクト名にファイルを突っ込みたいから。 <a href="http://tortoisesvn.tigris.org/">TortoiseSVN</a> を使うのであれば、インポートするフォルダを選択して、上記と同様の URI を指定してあげれば ok 。別の場所に同様の URI でチェックアウトできることも確認しておきましょう。</li>
<li>Trac をインストールします。<a title="CentOS &amp; Trac | Hanada.Org" href="http://www.hanada.org/setting-up-trac-on-centos5">先ほどのサイト</a>を参照して、 yum のリポジトリ追加を行ってからインストールを試みます。が、<a title="Trac インストールに挑戦 - メモチョウ" href="http://d.hatena.ne.jp/hurvinek/20080829/1220001650">python-genshi が無いよ、と怒られてしまいますので、これだけは rpm パッケージを拾ってきて手動でインストールする必要があります</a>。
<pre>% sudo yum install python-setuptools    # python-genshi のインストールに必要でした。
# 事前にディレクトリを参照して最新版のファイル名を確認しておきましょう。。。
% wget http://packages.sw.be/python-genshi/python-genshi-0.5.1-2.el5.rf.i386.rpm
% sudo rpm -i python-genshi-0.5.1-2.el5.rf.i386.rpm
% sudo yum install trac</pre>
<p>ここでインストールされる Trac は英語版なので、これは一旦削除し、代わりに<a title="インタアクト株式会社--業務内容--公開資料" href="http://www.i-act.co.jp/project/products/products.html">日本語版の Trac</a> をインストールします。</p>
<pre>% sudo yum remove trac
# これも事前に最新版のファイルの URI を確認しておきましょう。。。
% wget http://www.i-act.co.jp/project/products/downloads/Trac-0.11.2.1.ja1.zip
% unzip Trac-0.11.2.1.ja1.zip
% cd trac-0.11.2.1.ja1
% sudo python setup.py install</pre>
</li>
<li>trac リポジトリを構築します。<br />
普通に作ろうとすると DBMS に SQLite を使用するようになるのですが、今回は MySQL を使いたかったので、<a title="DatabaseBackend ? The Trac Project" href="http://trac.edgewall.org/wiki/DatabaseBackend">こちらのサイト</a>を参考に、データベースの構築から行います。ちなみに、 MySQL は既にインストールされていて、使える状態になっているものとします。</p>
<pre>% mysql -u root -p
mysql&gt; create database trac_hoge;
mysql&gt; grant all privileges on trac_hoge.* to trac_hoge@localhost identified by 'password';
mysql&gt; use trac_hoge;
mysql&gt; alter database default character set utf8 collate utf8_general_ci;
mysql&gt; quit
% su -
% mkdir /var/Developer/trust/hoge/trac
% cd /var/Developer/trust/hoge/trac
% chown murachi.apache .    # apache から扱えるように。
% chmod g+w .
% chmod g+s .
% exit
% trac-admin /var/Developer/trust/hoge/trac/hoge initenv</pre>
<p>そして、<q>database connection string</q> について聞かれたら、以下のように入力します。</p>
<pre>mysql://trac_hoge:password@localhost/trac_hoge</pre>
</li>
<li>Apache に設定を追加します。弊社の環境ではヴァーチャルホスト設定によってサブドメインを追加しているので、そのディレクティブ内に設定を記述します。今回は秘匿する必要があり、 SSL を介して用いたいので、 <code>/etc/httpd/conf.d/ssl.conf</code> の中に設定を記述します。
<p>その前に、ダイジェスト認証を用いたいので、まずはダイジェスト認証用のユーザー定義ファイルを作成します。</p>
<pre>% htdigest -c /var/Developer/trust/hoge/.htdigest realm murachi</pre>
<p>設定の記述内容は、概ね以下の通りです。</p>
<pre>&lt;VertualHost&gt;

# ...

# trac location
&lt;Location /trust/hoge/trac&gt;
    SetHandler mod_python
    PythonDebug On
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnvParentDir /var/Developer/trust/hoge/trac
    PythonOption TracUriRoot /trust/hoge/trac
&lt;/Location&gt;

&lt;Location /trust/hoge&gt;
    AuthType Digest
    AuthName realm
    AuthUserFile "/var/Developer/trust/hoge/.htdigest"
    Require valid-user
&lt;/Location&gt;

&lt;/VirtualHost&gt;</pre>
<p>Digest 認証の場合、 <code>AuthName</code> は <code>realm</code> で<strong>なければなりません</strong>。もっとも、 SSL で通信路自体が暗号化されているので、 Basic 認証でも問題なかったかも知れませんが…。</p>
<p>それから、Digest 認証で <code>AuthUserFile</code> ステートメントを用いるのは Apache 2.2 以降で、 2.0 以前の場合は <code>AuthDigestFile</code> ステートメントを使用します。</li>
<li>設定が文法上問題ないことを確認してから、 Apache を再起動します。
<pre>% sudo /etc/init.d/httpd configtest
% sudo /etc/init.d/httpd restart</pre>
</li>
</ol>
<h3>URI がいまいち…</h3>
<p>以上ですべての準備が整いました。ブラウザから、 https://developer.harapeko.jp/trust/hoge/trac に接続してみます。すると、以下のようなページが表示されました。</p>
<p><a href="http://blog.harapeko.jp/wp-content/uploads/2008/12/20081218-trac-humm.png"><img class="alignnone size-medium wp-image-12" src="http://blog.harapeko.jp/wp-content/uploads/2008/12/20081218-trac-humm.png" alt="" width="300" height="233" /></a></p>
<p>えっと…。どうやらここには Trac そのものではなく、 Trac のリポジトリを設定したプロジェクトの一覧が配置される模様。</p>
<p>で、表示されているリンクをクリックすると Trac のトップページに遷移するのですが…</p>
<p><a href="http://blog.harapeko.jp/wp-content/uploads/2008/12/20081218-trac-what1.png"><img class="alignnone size-medium wp-image-14" src="http://blog.harapeko.jp/wp-content/uploads/2008/12/20081218-trac-what1.png" alt="" width="300" height="233" /></a></p>
<p>URI の中にプロジェクト名が 2つ重なって出てきてしまう。これは何ともイタダケナイ。</p>
<h3>構成を再検討</h3>
<p>そんなわけで、ファイルの構成を再検討中です。とりあえず、反省点としては以下の通りでしょうか。</p>
<ul>
<li>svn リポジトリと trac リポジトリは、やっぱり完全に分けた方がよさそう。そもそも、svn リポジトリは unix ユーザーで権限を制御しているのに対して、 trac は Web の認証で権限を制御するので、あんまり一緒に管理するメリットはない気がしてきた。</li>
<li>trac リポジトリはオリジナル用と外注用の 2つに分けた上でプロジェクト毎に作成し、DB もプロジェクト毎に別個に作成する。アクセス制限はプロジェクトごとにロケーション別で設定可能だが、外注用についてはプロジェクト一覧ページには自分以外は入れないように制限する必要がある (オリジナルも同様に制限するかも…)。</li>
<li>svn リポジトリはプロジェクトごとに別個に作成する。公開している Trac から svn リポジトリを覗いてみたら外注で開発しているソースが見えちゃったでござるの巻、なんてことがあってはならない。</li>
</ul>
<p>構成例としては以下のような感じでしょうか…。</p>
<pre>/var/Developer/
  svn/
    original/
      foo/
      bar/
      baz/
      # ...
    trust/
      hoge/
      fuga/
      # ...
  trac/
    original/    # オリジナル用の TracEnvParentDir になる
      foo/
        .htdigest    # 認証用のユーザー定義ファイルはリポジトリの中に置いてしまう
      bar/
      baz/
      # ...
    trust/
      hoge/
        .htdigest
      fuga/
        .htdigest
      # ...</pre>
<p>という感じで軽くメモを書くだけのつもりが長々と書いてしまいました。これからまた設定です。おなか空いた…。</p>
]]></content:encoded>
			<wfw:commentRss>https://blog.harapeko.jp/2008/12/18/developer-repository-structure/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
