Posted on 2010-09-26 20:17
幻海蓝梦 阅读(14448)
评论(0) 编辑 收藏 所属分类:
Linux 、
版本管理
之前在linux下用subversion搭建过svn服务器,相对比较容易,只要apt-get subversion,然后svnadmin create资源库,修改一下conf文件,svnserve跑起来就可以了,根据网上的教程来就可以。稍微灵活一些的地方是改配置文件,具体如下:
在svn create之后,比如创建了一个myproject项目,myproject目录下会生成许多文件,配置文件位于myproject/conf下。需要改的地方有svnserve.conf, passwd, authz。
首先,svnserve.conf把以下行的注释去掉。
anon-access = read (匿名用户只读,也可以设成none,不可访问)
auth-access = write
password-db = passwd (svn密码文件,如果有多个项目,建议将该文件放到公共位置)
authz-db = authz (目录权限文件,建议同上)
real = My First Repository (认证域,相同认证域下的项目使用相同的passwd和authz,暂时不用理会)
接下来,passwd文件中添加明文的用户名/密码。authz文件中设置别名和用户组,并针对不同目录对不同的用户或组分配权限(r,w,rw)。设置权限时,用户组前面要加@,别名前面要加&。
这样配置好后,就可以通过svn://来访问了。
如果要想通过Apache来访问svn,还需要进行下面的配置。
假定Apache服务器已经安装好。
1. 创建一个svn用户组,将www-data(apache的默认用户名)加入到svn组中。
2. 将资源库的owner设成www-data,group设成svn。下面三条用于修改权限
sudo chown -R www-data myproject
sudo chgrp -R svn myproject
sudo chmod -R g+rwx myproject 这条命令允许用户对版本库进行读写操作,即可以更新,可以提交
3. 确认libapache2-svn已经安装,/etc/apache2/mods-enabled下面有dav.load,dav_svn.load和dav_svn.conf三个文件。
4. 修改dav_svn.conf文件。去掉下面行的注释。
<Location /svn> (apache下的位置)
DAV svn
SVNPath /home/svn/myproject (指明资源库的路径)
或
SVNParentPath /home/svn (如果有多个库,使用该选项)
SVNListParentPath on (打开这个选项可以列出ParentPath下面的所有库)
AuthType Basic (认证类型为基本认证 )
AuthName "Subversion Repository" (认证名称,将在IE界面弹出一个对话框,其标题)
AuthUserFile /etc/apache2/dav_svn.passwd (认证密码文件)
# AuthzSVNAcessFile /etc/apache2/dav_svn.authz (目录权限文件)
Require valid-user (要求验证用户,即不能匿名访问)
</Location>
5. 通过sudo htpasswd -c /etc/apache2/dav_svn.passwd abc创建用户abc并按照提示设置密码,网页认证的时候使用该用户名和密码登录。后面再添加用户的时候去掉-c选项。
配好以后就可以通过Http页面来访问SVN了。
关于设置目录权限,更详细的英文说明见http://svnbook.red-bean.com/en/1.1/ch06s04.html
原文:http://gkso.appspot.com/2010/09/5/ubuntu_build_svn_under_apache.html