Ubuntu下搭建SVN环境-Apache

简介:

环境描述:ubuntu server 12.04  / svn1.6  / apache2

1、先创建svn组和用户:

addgroud svn

useradd svn -g svn -m  //新增svn用户名,-g并制定它所在的组svn,-m同时创建svn用户所在的home目录

passwd svn  //设置svn用户的密码

2、安装apache2和svn server

sudo apt-get install apache2

sudo apt-get install subversion

sudo apt-get install libapache2-svn

完成以上安装,可以直接访问apache的主页,如http://localhost/    

3、创建svn版本库

sudo mkdir /var/svn

sudo svnadmin create /var/svn/repos

此时可以在/var/svn/repos目录下看到svn版本库的所有文件夹以及配置文件,如:conf、db、format、hooks、locks、README.txt

4、配置并导入项目

sudo mkdir /opt/idbtest

sudo mkdir /opt/idbtest/branches

sudo mkdir /opt/idbtest/tags

sudo mkdir /opt/idbtest/trunk

导入项目到版本库:svn import /opt/idbtest file:///var/svn/repos/idbtest -m "initial import"  //  /opt/idbtest表示需要引入的项目,file:///var/svn/repos/idbtest表示svn的版本库,此处是做初始化引入

5、将svn配置到apache中通过http web方式访问

sudo  vi /etc/apache2/apache.conf,将如下文件粘帖到apache.conf尾部,如下:

 <Location /svn>
    DAV svn
    SVNPath /var/svn/repos
    AuthzSVNAccessFile /var/svn/repos/conf/authz
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile /var/svn/repos/conf/passwd
    Require valid-user
</Location> 

 备注:此配置文件是告诉apache关于svn的访问路径已经相关配置文件,这里注意放问的跟目录。重启apache服务器,然后就可以通过http://localhost/svn进行远程访问

重启apache服务器:/etc/init.d/apache2 restart

当然这里需要验证访问登录用户,接下来将介绍添加svn用户

6、添加svn用户

htpasswd -c /var/svn/repos/conf/passwd test1  //然后会提示你输入密码,当然第一次创建svn用户,需要通过参数-c,然后第二次创建svn用户就不需要,这里要注意。

htpasswd /var/svn/repos/conf/passwd test2  //创建第二个svn用户

然后就可以通过这些用户访问http://localhost/svn了,并可以在其他pc上对svn进行checkout,命令行如下:

svn checkout http://localhost/svn --username test1 --password 123456

当然还可以通过svn客户端工具checkout更方便

7、遇到的问题

当我checkout到我的客户端时,在执行commit提交操作时,svn客户端报:svn: Can't open file '/var/svn/repos/testdemo/db/txn-current-lock': Permission denied

出现如上的错误时,此时就需要检查版本库的访问权限了,可能是版本库没有写的权限,且当前版本库的组和访问权限均是root,我们需要将版本库的组权限更改为svn组权限,如下名:

sudo chown -R svn:svn /var/svn/repos

sudo chmod 777 -R  repos/*

再次进行commit提交,发现一切正常

8、用户权限控制

需要在apache的配置文件中增加如下配置,才能使得apache能够获取svn的权限配置,如下:

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

svn的权限控制是通过目录结构来控制,控制权限在/var/svn/repos/conf/authz文件中,示例配置如下:

我的版本库下引入了目录testdemo,testdemo下有三个branches、tags、trunk,其中trunk下有app、doc、testdoc、devdoc

编辑 vi /var/svn/repos/conf/authz

[groups]

Admin=admin

Develop=dev1、dev2

Tester=test1,test2

[/]  //表示版本库的根目录,admin拥有所有的读写权限

@admin=rw

[/testdemo/trunk]  //表示版本库的根目录下的trunk文件下,表示develop拥有该文件夹下的读写权限

@develop=rw

[/testdemo/trunk/testdoc]  //表示版本库的根目录下的trunk文件下,表示Tester拥有该文件夹下的读写权限,便是develop拥有可读权限

@tester=rw

@develop=r

以上的权限配置比较灵活,自己定义觉得,然后对于每一个角色控制其访问权限

 

附:为了更好的控制版本库做好配置管理,发现svn还是比较适合,所以就着手搭建了一个svn server。

 

 





本文转自一米一阳光博客园博客,原文链接: http://www.cnblogs.com/candle806/archive/2012/12/20/2826280.html   ,如需转载请自行联系原作者



相关文章
|
1月前
|
存储 网络协议 Ubuntu
Linux环境下的SVN服务器搭建并结合内网穿透实现远程连接
Linux环境下的SVN服务器搭建并结合内网穿透实现远程连接
|
3月前
|
存储 网络协议 Ubuntu
如何在Ubuntu安装配置SVN服务端并实现无公网ip访问内网资料库
如何在Ubuntu安装配置SVN服务端并实现无公网ip访问内网资料库
73 0
|
3月前
|
IDE Ubuntu Java
百度搜索:蓝易云【Ubuntu快速搭建单步调试openjdk环境】
现在,你已经成功在Ubuntu上搭建了OpenJDK的单步调试环境,可以使用Eclipse IDE方便地进行Java程序的调试。请注意,Eclipse IDE提供了丰富的调试功能,使得调试过程更加高效和准确。
26 0
|
3月前
|
Ubuntu 安全 网络安全
百度搜索:蓝易云【Ubuntu系统SVN服务器搭建教程】
现在,你已经成功在Ubuntu系统上搭建了SVN服务器。其他用户可以通过SVN客户端连接到你的SVN服务器,进行代码版本管理和协作开发。注意,为了安全起见,建议配置SSL加密以保护数据传输。
39 1
|
3月前
|
Ubuntu 网络协议 Linux
如何在无公网IP环境使用Windows远程桌面Ubuntu
如何在无公网IP环境使用Windows远程桌面Ubuntu
61 0
|
4月前
|
Ubuntu 测试技术 Linux
dpdk测试环境搭建(vmware下ubuntu环境参考上文汇总流程)
dpdk测试环境搭建(vmware下ubuntu环境参考上文汇总流程)
104 0
|
16天前
|
Linux Apache
CentOS 7 源码安装LAMP环境源 和apache监听别的端口
CentOS 7 源码安装LAMP环境源 和apache监听别的端口
13 0
|
18天前
|
Ubuntu 开发工具 git
ubuntu18.04下配置muduoC++11环境
以上步骤将在Ubuntu 18.04下配置C++11环境,并编译安装muduo库。请根据实际情况对配置步骤进行调整。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
17 0
|
2月前
|
关系型数据库 MySQL Apache
Ubuntu22.04搭建LAMP环境
LAMP是一个用于构建Web应用程序的技术堆栈,你可以用它开发很多Web程序,比如WordPress。如果你想手工在VPS上搭建WordPress的话,那么你就需要先搭建LAMP环境。这篇文章讲解如何在Ubuntu22.04上搭建LAMP环境。首先,你需要先注册一台VPS服务器,然后登录VPS安装Apache服务、安装MySQL数据库,以及安装PHP。
50 0
Ubuntu22.04搭建LAMP环境
|
2月前
|
安全 应用服务中间件 开发工具
Ubuntu20安装docker并部署相关漏洞环境
Ubuntu20安装docker并部署相关漏洞环境
52 0