2007年6月3日星期日

How to install and configure Cvsweb

cvsweb安装

CVSWEB就是CVS的WEB界面,可以大大提高程序员定位修改的效率:
使用的样例可以看:http://www.freebsd.org/cgi/cvsweb.cgi

假定:apache安装在/usr/local/apache2
1、下载cvsweb(当前最新版3.0.6)
http://people.freebsd.org/~scop/cvsweb/cvsweb-3.0.6.tar.gz

2、解包
tar zxvf cvsweb-3.0.6.tar.gz

3、把配置文件cvsweb.conf复制到apache2的配置目录下
cd cvsweb-3.0.6
cp cvsweb.conf /usr/local/apache2/conf
修改cvsweb.conf,指定CVSrepositories路径。
vi /usr/local/apache2/conf/cvsweb.conf
查找"@CVSrepositories = " ,有如下字样:
@CVSrepositories = (
'local' => ['Local Repository', '/var/cvs'],
# 'freebsd' => ['FreeBSD', '/var/ncvs'],
# 'openbsd' => ['OpenBSD', '/var/ncvs'],
# 'netbsd' => ['NetBSD', '/var/ncvs'],
# 'ruby' => ['Ruby', '/var/anoncvs/ruby'],

将local的最后部分:'/var/cvs',更改为你的cvs仓库所在目录。

4、其它个性化设置
cvsweb.conf还有许多其它个性化设置,常见的有这些变量:
$logo 图标设置
$defaulttitle 标题设施
$address 管理员email地址设置
$long_intro 介绍文字
$short_instruction 说明文字

5、把cvsweb.cgi复制到apache的cgi-bin目录的cvsweb子目录下:
cp cvsweb.cgi /usr/local/apache2/cgi-bin/cvsweb/

更改cvsweb.cgi的$config变量值为你的cvsweb.conf所在路径。
vi /usr/local/apache2/cgi-bin/cvsweb.cgi
查找$config,找到有:
##### Start of Configuration Area ########
##### End of Configuration Area ########
字样部分,修改$config为:
$config = '/usr/local/apache2/conf/cvsweb.conf';

6、中文支持
vi /usr/local/apache2/cgi-bin/cvsweb.cgi
找到sub html_header($)函数。
之间插入一行:<meta http-equiv="Content-Type" content="text/html; charset=gb2312"><br /><br />7、复制所有的icons到apache的icons目录<br />cp icons/* /usr/local/apache2/icons<br /> <br />8、增加访问控制<br />增加cvsweb访问的web用户认证。<br />切换到/usr/lcal/apache2/conf目录,先生成passwd:<br />/usr/local/apache2/bin/htpasswd -c cvsweb.paaswd user<br /><br />/usr/bin/htpasswd -c cvsweb.paaswd cvsroot<br /><br />其中user为指定的用户名。<br />该命令在当前目录生成cvsweb.passwd文件,在下面配置中需指定该文件所在位置。<br /><br />再修改httpd.conf配置文件,增加:<br /><Directory "/usr/local/apache2/cgi-bin/cvsweb/"><br /> AuthName "CVS Authorization"<br /> AuthType Basic<br /> AuthUserFile /usr/local/apache2/conf/cvsweb.passwd<br /> require valid-user<br /></Directory><br /><br />注:<br />1、如果不能访问http://localhost/cgi-bin/cvsweb/cvsweb.cgi,查看/usr/local/apache2/logs/error_log,查找错误原因。<br />2、安装cvsweb.cgi前,必须已安装File::Temp、IPC::Run、URI等3个perl模块。<br />3、安装cvsweb.cgi前,cvs必须成功安装。使用:<br />netstat -lnp | grep 2401 查看cvs是否已运行。<br /><br /><br />cvsweb配置<br />假如现在你已经成功配置了cvs那么为了便于管理简单那我们来配置cvsweb <br />废话少说当然你也要先下个正版的cvsweb-3.0.5.tar.gz <br />1. 首先看你apache配置文件httpd.conf其中把#AddHandler cgi-script .cgi <br />注释掉 <br /><br />2.解开这个gz文件,安装 <br /><br />tar xvzf [file] <br />cd [dir] <br />perl Makefile.PL <br />make <br />make test <br />make install <br /><br />3.大家集注你的机器要支持modules_cgi(redhat linux 9.0这个是我的系统)把cvsweb.cgi放在/usr/local/apache/cgi-bin目录下 <br /><br /># cd /usr/local/apache/cgi-bin <br /># perl -wT cvsweb.cgi <br />看有没有错误信息,正常的话输出一堆html代码 <br /><br />4.[root@biologyone cgi-bin]# perl -wTc cvsweb.cgi <br />cvsweb.cgi syntax OK说明你现在.gz包安装成功 <br /><br />5.现在开始配置了 <br />vi cvsweb.cgi,第213行 <br /><br />##### Start of Configuration Area ######## <br /><br />下面,仔细读一下,看看说了什么 <br /><br />可以,不用修改,看清楚了吧,默认的去找cvsweb的配置文件,在/usr/local/etc/cvsweb下面,你就在/usr/local/etc下建一个cvsweb目录,把cvsweb.conf放在这个目录下 <br /><br />6.vi cvsweb.conf 第59行 <br /><br />如果有两个仓库目录?都加在这个数组里,注意格式 <br />' symbolic_name' => ['Name to display', '/path/to/cvsroot'] <br /><br />symbolic_name和Name to display都改一下吧,改成有意义的,符合你的项目的名字 <br /><br />看看下面的,举了几个例子 <br /><br /># 'freebsd' => ['FreeBSD', '/var/ncvs'], <br /># 'openbsd' => ['OpenBSD', '/var/ncvs'], <br /># 'netbsd' => ['NetBSD', '/var/ncvs'], <br /># 'ruby' => ['Ruby', '/var/anoncvs/ruby'] <br /><br /># Note that only local repositories are currently supported. Things like <br /># server omeone@xyz.com:/data/cvsroot won't work. <br /># <br /><br /># <br />@CVSrepositories = ( <br />'Bioinformatics database' => ['RBKB Repository', '/usr/local/cvsroot/RBKB'], <br /># 'freebsd' => ['FreeBSD', '/var/ncvs'], <br /># 'openbsd' => ['OpenBSD', '/var/ncvs'], <br /># 'netbsd' => ['NetBSD', '/var/ncvs'], <br /># <br /><br />231行 <br />my $iconsdir = '/icons'; <br /># format: TEXT ICON-URL width height <br />%ICONS = ( <br /> back => [('[BACK]', "$iconsdir/back.gif", 20, 22)], <br /> dir => [('[DIR]', "$iconsdir/dir.gif", 20, 22)], <br /> file => [('[TXT]', "$iconsdir/text.gif", 20, 22)], <br /> binfile => [('[BIN]', "$iconsdir/binary.gif", 20, 22)], <br /> graph => [('[GRAPH]', "$iconsdir/minigraph.png", 16, 16)], <br />); <br />undef $iconsdir;可以改成这样ok了 <br /><br />my $iconsdir = '/cvsweb/icons'; <br /><br />还有下面的这行 <br />$cssurl = '/cvsweb/css/cvsweb.css'; <br /><br />save退出 <br /><br />7.到/usr/local/apache/htdocs目录下建一个目录cvsweb,然后把刚才解开的cvsweb的目录里icons和css两个目录copy到这个目录里 <br />重启apache<br /><br />= == = = = = = = = = = = <br /><br />CVSWEB就是CVS的WEB界面,可以大大提高程序员定位修改的效率:<br />使用的样例可以看:http://www.freebsd.org/cgi/cvsweb.cgi<br /><br />CVSWEB的下载:CVSWEB从最初的版本已经演化出很多功能界面更丰富的版本,这个是个人感觉觉得安装设置比较方便的:<br />http://www.spaghetti-code.de/software/linux/cvsweb/<br /><br />1 下载解包:<br />tar zxf cvsweb.tgz<br /><br />2 把配置文件cvsweb.conf复制到apache的配置目录下<br />cp cvsweb.conf /path/to/apache/conf<br /><br />转到/path/to/apache/conf下并修改cvsweb.conf:<br /><br />修改CVSROOT路径设置:<br />%CVSROOT = (<br />'Development' => '/path/to/cvsroot/dev', #<==修改指向本地的CVSROOT<br />'test' => '/path/to/cvsroot/test', #<==修改指向本地的CVSROOT<br />);<br />如果有多个cvsroot,这定缺省的cvsroot<br />$cvstreedefault = 'test';<br /><br />3 其它个性化设置<br />cvsweb.conf还有许多其它个性化设置,常见的有这些变量:<br />$logo 图标设置<br />$defaulttitle 标题设施<br />$address 管理员email地址设置<br />$long_intro 介绍文字<br />$short_instruction 说明文字<br /><br />4 把文件cvsweb.cgi复制到apache的cgi目录<br />cp cvsweb.cgi /path/to/apache/cgi-bin<br /><br />转到/path/to/apache/cgi-bin修改cvsweb.cgi<br />修改cvsweb.cgi让CGI找到配置文件:<br /><br />$config = $ENV{'CVSWEB_CONFIG'} || '/path/to/apache/conf/cvsweb.conf';<br /><br />5 中文支持<br />让cvsweb正确显示中文,找到sub html_header($)函数,<br />然后在<html>和<title>之间插入一行,修改如下<br /><html><br /><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><br /><title>$title
6 复制所有的gif,png文件到apache的icons目录
7 增加访问控制
CVSWEB可不能随便开放给所有用户,因此需要使用WEB用户认证:
先生成 passwd:
/path/to/apache/bin/htpasswd -c cvsweb.passwd user

修改httpd.conf: 增加

AuthName "CVS Authorization"
AuthType Basic
AuthUserFile /path/to/cvsweb.passwd
require valid-user

0 评论: