# mkdir /usr/local/apache2/conf/crt; cd /usr/local/apache2/conf/crt
# openssl genrsa -out server-dsa.key 1024
# openssl req -new -x509 -days3650 -key server-dsa.key -out server-dsa.crt
//在httpd-ssl-conf中需指定这两个文件的存放位置
4配置apache for svn 4.1修改apache配置文件(本地认证)
# vi /usr/local/apache2/conf/httpd.conf //取消如下内容的注释
Include conf/extra/httpd-ssl.conf
在配置文件末尾添加如下内容
<Location /svn>
DAV svn
SVNParentPath /home/subversion/project
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /home/subversion/passwd
AuthzSVNAccessFile /home/subversion/auth
Require valid-user
</Location>
其中:
SVNParentPath后面跟的是 (此处配置你的版本库根目录).在这里,版本库根目录假设为/home/subversion/project
AuthName 后面跟的(是提示对话框标题)
AuthUserFile 跟的是(访问版本库用户的文件,须用apache 的 htpasswd命令生成)
AuthzSVNAccessFile后面跟的是(访问版本库权限的文件)
4.2修改httpd-ssl.conf文件# vi /usr/local/apache2/conf/extra/httpd-ssl.conf
改三个地方
1、SSLCertificateFile"/usr/local/apache2/conf/crt/server-dsa.crt" //指定到生成的证书
2、SSLCertificateKeyFile"/usr/local/apache2/conf/crt/server-dsa.key" //指定到生成的证书
3、SSLCACertificatePath"/usr/local/apache2/conf/crt"
5建库
重启web服务
/usr/local/apache2/bin/apachectl restart
5.1建立版本仓库假设版本仓库的根目录为/home/subversion/projecrt
所以,先创建这个目录 mkdir -p /home/subversion/project
根目录创建完毕,下面我们创建一个叫data的仓库。 /usr/local/subversion/bin/svnadmincreate /home/subversion/project/data
注意命令的全路径。如果仅仅敲svnadmin将会用到系统自带的svn,会有报错信息。
查看data文件夹会发现多了一些像conf,dav等这类的文件,说明建库成功(注意:创建仓库的路径中,路径目录必须为所有人可读,否则采用svn客户端访问仓库时会失败。)
# mkdir -p /home/subversion/project/data/dav/activities.d
# chown -R o+w /home/subversion/project/data/
5.2建立可以访问Subversion的用户 #/usr/local/apache2/bin/htpasswd -cm /home/subversion/passwd test1这时系统会提示你要求你输入密码,以及确认密码,输入即可,创建的用户就是Subversion的用户。但是,仅仅是创建了用户还是不行的,必须得给他授权才可以。
先在根目录创建授权文件。(注意:htpasswd -cm命令生成用户密码时会将passwd文件中原有的密码给覆盖掉,因此,如果创建多个用户,需要将-cm参数后边的文件指定到一个临时文件,然后将临时文件中的内容cp到passwd文件)
#vi /home/subversion/auth
输入如下内容:
[data:/] 指的是访问data仓库(可以具体到下面的子目录)
test1=rw test1有读和写权限
test2=r test2有只读的权限,只读权限的设置不能为ro。
还可以细化用户的详细目录路径:
[data:/trunk/FrontEnd/code]
test2=rw
结合上面对user1权限的设置,综合权限的结果是:test2对/data仓库有读取权限,没有写权限,但是对/data仓库下的/data/trunk/FrontEnd/code目录有读取和写的权限。
# su - test1
$ mkdir -p test/a/b/c
$ /usr/local/subversion/bin/svn import test https://192.168.1.198/svn/data/test -m "add test dir"
5.3LDAP认证配置# vi /usr/local/apache2/conf/httpd.conf
将之前的配置注释掉。添加如下信息:
<Location /svn>
DAV svn
SVNParentPath /home/subversion/project
AuthzSVNAccessFile /home/subversion/auth
# Authentication
AuthType Basic
AuthName "SVN_repository"
AuthBasicProvider ldap
Require valid-user
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://192.168.1.226:389/DC=example,DC=com,DC=cn?uid?sub?(objectClass=*)"
</Location>
5.4测试并访问svn#/usr/local/apache2/bin/apachectl restart
在浏览器中输入https://localhost/svn/data
回车会出现svn登录的验证窗口,提示输入帐号和密码,帐号就是上面创建的subversion用户,输入帐号和密码之后,如果出现下面窗口,则说明subversion的安装成功了。
在服务器端可以使用终端:
svn checkout https://localhost/svn/data将data仓库checkout出来。
Svn客户端:
Svn客户端需要安装apr-1.2.12和apr-util-1.2.12,否则svn客户端不能checkout仓库。
CollabNetSubversion-client-1.5.6-1.i386.rpm
CollabNetSubversion-extras-1.5.6-1.i386.rpm
CollabNetSubversion-server-1.5.6-1.i386.rpm