在ubuntu上安装svn+apache2

参考网站:

http://www.thinksaas.cn/group/topic/335434/

http://blog.sina.com.cn/s/blog_3eba8f1c0100dqk1.html

http://www.linuxidc.com/Linux/2015-05/117735.htm

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.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

原文地址:https://www.cnblogs.com/byxxw/p/5367595.html