1.安装软件
apt-get install subversion
apt-get install apache2
apt-get install libapache2-svn
2.创建SVN库
mkdir /home/svn
最好使用root用户,否则其他的用户会引发一些权限问题
3.创建项目
svnadmin create /home/svn/project 此时project下面会多出几个文件
root@ubuntu-14:/home/svn/project# ls -a
. .. conf db format hooks locks README.txt
然后进行读写授权
chmod -R 777 /home/svn/project 否则在代码提交的时候会出现commit failed !can't open file '/home/fruits/svn/projects/code/testsvn/db/txn-current-lock'!
4.cd conf
root@ubuntu-14:/home/svn/project# cd conf
root@ubuntu-14:/home/svn/project/conf# ls -a
. .. authz hooks-env.tmpl passwd svnserve.conf
5.开始修改配置文件
root@ubuntu-14:/home/svn/project/conf# vi authz
[aliases]
[groups] #用户分组
# harry_and_sally=harry,sally
# harry_sally_and_joe=harry,sally,&joe
admin=pm,admin
test=test
[/] #组赋予读写权限的设置
@admin=rw
@test=r
还可以设置具体的目录权限
[/projectname/目录/子目录]
6. vi svnserve.conf
root@ubuntu-14:/home/svn/project/conf# vi svnserve.conf
[general]
### The anon-access and auth-access options control access to the
### repository for unauthenticated (a.k.a. anonymous) users and
### authenticated users, respectively.
### Valid values are "write", "read", and "none".
### Setting the value to "none" prohibits both reading and writing;
### "read" allows read-only access, and "write" allows complete
### read/write access to the repository.
### The sample settings below are the defaults and specify that anonymous
### users have read-only access to the repository, while authenticated
### users have read and write access to the repository.
anon-access=read
auth-access=write
### The password-db option controls the location of the password
### database file. Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
password-db=passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control. Unless you specify a path
### starting with a /, the file's location is relative to the
### directory containing this file. The specified path may be a
### repository relative URL (^/) or an absolute file:// URL to a text
### file in a Subversion repository. If you don't specify an authz-db,
### no path-based access control is done.
### Uncomment the line below to use the default authorization file.
authz-db=authz
7.然后就是修改passwd文件
直接就是在【user】进行username=password的格式显示密码,如果你要支持http格式加密的访问这里暂时不用配置
htpasswd -c /home/svn/project/conf/passwd username 然后会让输入2次密码
之后在进行添加用户的时候要去掉 -c 否则就会覆盖所有
例如:添加test
htpasswd /home/svn/project/conf/passwd test
注:因为已存在passwd文件 htpasswd命令会报格式错误,最好删除创建仓库已存在的passwd文件,或者创建一个新文件
test:$apr1$FIjm/2hw$WtCyafEOc9rqBsPAewWGl1 #这是加密之后的
如果进行修改密码 这样操作也是可以的
8.配置apache
root@ubuntu-14:~# cd /etc/apache2/mods-available/
root@ubuntu-14:/etc/apache2/mods-available# vi dav_svn.conf
<Location /project>
DAV svn
#SVNParentPath /home/svn
SVNPath /home/svn/project
ModMimeUsePathInfo on
AuthzSVNAccessFile /home/svn/project/conf/authz
AuthzSVNAnonymous off
AuthzSVNNoAuthWhenAnonymousAllowed off
AuthType Basic
AuthName "Subversion"
AuthUserFile /home/svn/project/conf/passwd
Require valid-user
</Location>
9.如果要修改apache2端口[可以不做]
root@ubuntu-14:/etc/apache2# vi ports.conf
Listen 端口 #你想要的端口
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
10.如果你想修改SVN默认的端口[可以不做]
重新指定一个端口号(默认端口3690)比如修改为3691
svnserve -d –listen-port 3691 -r /home/svn/project
11.配置完毕重启/etc/init.d/apache2 restart