基于SSL和LDAP的SVN工具安装指南(2)

# 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

改三个地方

1SSLCertificateFile"/usr/local/apache2/conf/crt/server-dsa.crt" //指定到生成的证书

2SSLCertificateKeyFile"/usr/local/apache2/conf/crt/server-dsa.key" //指定到生成的证书

3SSLCACertificatePath"/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参数后边的文件指定到一个临时文件,然后将临时文件中的内容cppasswd文件

#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/datadata仓库checkout出来。

Svn客户端:

Svn客户端需要安装apr-1.2.12apr-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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/b8379b5e2172416089051191caf71959.html