<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Snooda]]></title> 
<link>http://www.snooda.com/index</link> 
<description><![CDATA[Snooda's Blog]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Snooda]]></copyright>
<item>
<link>http://www.snooda.com/read/</link>
<title><![CDATA[gitweb安装及lighttpd配置]]></title> 
<author>snooda &lt;admin@snooda.com&gt;</author>
<category><![CDATA[默认分类]]></category>
<pubDate>Sat, 03 Sep 2011 10:35:12 +0000</pubDate> 
<guid>http://www.snooda.com/read/</guid> 
<description>
<![CDATA[ 
	    由于前段时间已经把自己开发的代码都纳入到了git版本库的管理。维护代码顺畅了很多。不过查看diff还是有些麻烦，命令行使用起来很繁琐，win下的客户端又要把代码都check下来才能查看。于是决定在server上搭一个gitweb。<br />
<br />
    由于有yum，安装软件包简单了很多，直接yum install gitweb即可。<br />
<br />
    然后开始配置gitweb，修改/etc/gitweb.conf <br />
    设置our $projectroot为git库目录<br />
    设置$feature&#123;&#039;blame&#039;&#125;&#123;&#039;default&#039;&#125; = [1]; 这样就可以查看每个文件的修改历史了。很不错。<br />
<br />
    然后下一步需要给gitweb配置一个webserver。在我的server上可选的有nginx和lighttpd。由于最近在搞lighttpd，所以决定用lighttpd来作为gitweb的前段server。<br />
<br />
    首先在lighttpd中打开cgi模块的支持。<br />
    配置lighttpd.conf，给gitweb开个新端口，并配置相应的rewrite规则和验证规则<br />
<br />
<br />
<br />
$SERVER[&quot;socket&quot;] == &quot;0.0.0.0:9999&quot; &#123;<br />
    auth.debug = 1<br />
    auth.backend = &quot;htdigest&quot;<br />
    auth.backend.htdigest.userfile  = &quot;lighttpd.htdigest&quot;<br />
    auth.require = ( &quot;&quot; =&gt;<br />
            (<br />
             &quot;method&quot;  =&gt; &quot;digest&quot;,<br />
             &quot;realm&quot;   =&gt; &quot;Password&quot;,<br />
             &quot;require&quot; =&gt; &quot;valid-user&quot;<br />
            )<br />
        )<br />
    server.document-root = &quot;/var/www/git&quot;<br />
    url.rewrite = (&quot;^/static/(.*)$&quot; =&gt; &quot;/static/$1&quot; ,<br />
                    &quot;^(.*)$&quot; =&gt; &quot;/gitweb.cgi$1&quot; <br />
                    )<br />
&#125;<br />
上述配置规则表明，gitweb可从9999端口访问，lighttpd的mod_auth配置debug级别为1，类型为htdigest，指定密码文件，指定document_root和rewrite规则。<br />
<br />
这里的htdigest就不多写了，网上资料很多，就是对密码和其他字段md5加密保存并验证的东西。<br />
<br />
rewrite规则要注意，静态文件请求不进行rewrite，对于其他请求，统一rewrite到gitweb.cgi，如果配置错误，可能会在gitweb页面报404错误（找不到项目），让人摸不到头脑。验证方法是：如果web页面看到404找不到项目的错误，可以在server上手动执行gitweb.cgi，如果可以得到结果，可以判断是rewrite参数配置错误。
]]>
</description>
</item><item>
<link>http://www.snooda.com/read/#blogcomment</link>
<title><![CDATA[[评论] gitweb安装及lighttpd配置]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.snooda.com/read/#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>