apt-get install apache2
apt-get install subvesion
apt-get install libapache2-svn
新建一个目录作为svn的仓储目录
mkdir /home/svn;
新建一个目录作为项目目录。
mkdir /home/svn/mysite
svnadmin create /home/svn/myiste,使用SVN自带的工具svnadmin create创建SVN项目仓库,这个时候大家去/home/svn/mysite下去看就可以看到很多文件,这就说明这个项目仓库已经真正地建好了.
最后,我们需要配置Apache,使得我们可以以http的协议方式访问SVN服务。事实上,在我们安装libapache2-svn的时候,已经生成了一个路径为/etc/apache2/mods-available/dav_svn.conf的文件,接下来我们只需要对其进行些许的修改就可以完成对Apache的配置。打开dav_svn.conf这个配置文件,我们可以看见文件内有很多前面带#的注释语句,我们可以去掉一些#以完成我们的配置,最终dav_svn.conf这个配置文件的内容应该如下所示:
sudo vi /etc/apache2/mods-available/dav_svn.conf
<Location /svn>
DAV svn
SVNParentPath /home/svn #项目仓库的父目录
AuthType Basic
AuthName "ToFishes Project Svn"
AuthUserFile /etc/subversion/passwd #SVN的用户文件
AuthzSVNAcessFile /etc/subversion/authz #授权访问文件
Require Valid-user
</Location>
在上面的配置文件中我们设置了SVN的用户文件和授权访问文件,但实际上这两个文件并不存在,需要自己手动创建。创建命令如下:
htpasswd -c /etc/subversion/passwd svntest,因为是首次创建,所以需要添加-c选项,同时可以增加一个SVN用户,这里我们将用户svntest添加到SVN用户中。我们执行这条命令后会提示我们输入用户的密码以及再次输入密码。
如果在创建SVN用户文件之后我们还想再添加SVN用户的话,我们就不需要添加-c选项了,如果添加-c选项,之前已经添加的用户就会消失,相当于从新开始了。只添加用户命令如下:
htpasswd /etc/subversion/passwd new_svntest
上面我们添加完了用户,但是还要授权这些用户的权限,如该用户是具有读权限,还是写权限,还是读写权限等等。为了使得一个用户对于SVN的多个项目具有不同的权限控制,我们仅为用户组设置具体的读写权限,如果一个用户期望获得一个项目的相关权限,我们可以将这个用户直接添加到具有相应权限的组中去,具体命令如下:
sudo vi /etc/subversion/authz
在打开编辑授权文件之后编辑其内容如下:
#用户组指令
[groups]
svn = svntest,将用户svntest添加到用户组svn
#其他组
[mysite:/]
@svn = rw,为用户组svn添加读写权限
完成以上设置之后,我们只需重启SVN就可以了,重启命令如下:
sudo /etc/init.d/apache2 restart。
重启时报错:
Syntax error on line 61 of /etc/apache2/mods-enabled/dav_svn.conf:
Invalid command 'AuthzSVNAccessFile', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
...fail!
查一下后发现是一个so文件没加,在/etc/apache2/mods-available/dav_svn.load最后添加一行:
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so,apache服务器成功重启。
重启之后我们在浏览器中键入SVN项目的访问地址就可以查看项目中的内容了,假定我们配置服务器的IP地址为192.168.1.100,那么我们在浏览器中可键入http://192.169.1.100/svn/mysite/进行访问。
以上我们介绍的是SVN服务器端的安装和配置,在客户端可以安装一个SVN的客户端软件,如TortoiseSVN这个软件。TortoiseSVN的安装使用都非常方便,但是在第一次使用的时候可能会遇到一些小问题,如在TortoiseSVN Commit时报出错误:
svn: Can't open file '/home/svn/db/txn-current-lock':Permission denied
Error1:Can't open 'db/txn-current-lock':Permission denied。
原因是svn的根目录目前只属于创建者,需要给用户添加权限,消除这种错误的解决方法是给SVN目录添加读写权限,命令如下:
sudo chmod -R o+rw /home/svn