gitweb安装及lighttpd配置
[| 2011/09/03 18:35]
由于前段时间已经把自己开发的代码都纳入到了git版本库的管理。维护代码顺畅了很多。不过查看diff还是有些麻烦,命令行使用起来很繁琐,win下的客户端又要把代码都check下来才能查看。于是决定在server上搭一个gitweb。
由于有yum,安装软件包简单了很多,直接yum install gitweb即可。
然后开始配置gitweb,修改/etc/gitweb.conf
设置our $projectroot为git库目录
设置$feature{'blame'}{'default'} = [1]; 这样就可以查看每个文件的修改历史了。很不错。
然后下一步需要给gitweb配置一个webserver。在我的server上可选的有nginx和lighttpd。由于最近在搞lighttpd,所以决定用lighttpd来作为gitweb的前段server。
首先在lighttpd中打开cgi模块的支持。
配置lighttpd.conf,给gitweb开个新端口,并配置相应的rewrite规则和验证规则
$SERVER["socket"] == "0.0.0.0:9999" {
auth.debug = 1
auth.backend = "htdigest"
auth.backend.htdigest.userfile = "lighttpd.htdigest"
auth.require = ( "" =>
(
"method" => "digest",
"realm" => "Password",
"require" => "valid-user"
)
)
server.document-root = "/var/www/git"
url.rewrite = ("^/static/(.*)$" => "/static/$1" ,
"^(.*)$" => "/gitweb.cgi$1"
)
}
上述配置规则表明,gitweb可从9999端口访问,lighttpd的mod_auth配置debug级别为1,类型为htdigest,指定密码文件,指定document_root和rewrite规则。
这里的htdigest就不多写了,网上资料很多,就是对密码和其他字段md5加密保存并验证的东西。
rewrite规则要注意,静态文件请求不进行rewrite,对于其他请求,统一rewrite到gitweb.cgi,如果配置错误,可能会在gitweb页面报404错误(找不到项目),让人摸不到头脑。验证方法是:如果web页面看到404找不到项目的错误,可以在server上手动执行gitweb.cgi,如果可以得到结果,可以判断是rewrite参数配置错误。
由于有yum,安装软件包简单了很多,直接yum install gitweb即可。
然后开始配置gitweb,修改/etc/gitweb.conf
设置our $projectroot为git库目录
设置$feature{'blame'}{'default'} = [1]; 这样就可以查看每个文件的修改历史了。很不错。
然后下一步需要给gitweb配置一个webserver。在我的server上可选的有nginx和lighttpd。由于最近在搞lighttpd,所以决定用lighttpd来作为gitweb的前段server。
首先在lighttpd中打开cgi模块的支持。
配置lighttpd.conf,给gitweb开个新端口,并配置相应的rewrite规则和验证规则
$SERVER["socket"] == "0.0.0.0:9999" {
auth.debug = 1
auth.backend = "htdigest"
auth.backend.htdigest.userfile = "lighttpd.htdigest"
auth.require = ( "" =>
(
"method" => "digest",
"realm" => "Password",
"require" => "valid-user"
)
)
server.document-root = "/var/www/git"
url.rewrite = ("^/static/(.*)$" => "/static/$1" ,
"^(.*)$" => "/gitweb.cgi$1"
)
}
上述配置规则表明,gitweb可从9999端口访问,lighttpd的mod_auth配置debug级别为1,类型为htdigest,指定密码文件,指定document_root和rewrite规则。
这里的htdigest就不多写了,网上资料很多,就是对密码和其他字段md5加密保存并验证的东西。
rewrite规则要注意,静态文件请求不进行rewrite,对于其他请求,统一rewrite到gitweb.cgi,如果配置错误,可能会在gitweb页面报404错误(找不到项目),让人摸不到头脑。验证方法是:如果web页面看到404找不到项目的错误,可以在server上手动执行gitweb.cgi,如果可以得到结果,可以判断是rewrite参数配置错误。