首页 > 版本控制 > SVN > 正文


RedHat搭建SVN版本管理服务器

02-05 22:55:53   来源:互联网   评论: 点击:

安装环境:Red Hat Enterprise Linux Server release 5 3 (Tikanga)httpd-2 2 14 tar gzsubversion-1 6 6 tar gz到官网http: subve
安装环境:

Red Hat Enterprise Linux Server release 5.3 (Tikanga)

httpd-2.2.14.tar.gz

subversion-1.6.6.tar.gz

 

到官网 http://subversion.tigris.org/ 下载当前最新的稳定版本subversion-1.6.6.tar.gz

到官网 http://httpd.apache.org/ 下载当前最新的稳定版本httpd-2.2.14.tar.gz

 

1. 安装Apache2.2.14

用root账号执行以下命令:

tar zxf httpd-2.2.14.tar.gz    #解压到当前目录

cd httpd-2.2.14    #进入解压后的目录

./configure --prefix=/local/svnroot/apache2 --enable-so --enable-mods-shared=all --enable-dav=share --enable-dav-fs --with-ldap --enable-ldap --enable-authnz-ldap --enable-authn-alias

#定义安装的目标路径(可据自己需要修改),使能LDAP

make    #编译

make install    #安装

/local/svnroot/apache2/bin/apachectl start    #启动Apache

用IE访问以下网址,http://hostIP/,如果提示It works!,则Apache安装成功。

然后就可以先停止Apache了:

/local/svnroot/apache2/bin/apachectl stop    #停止Apache

 

2. 安装Subversion 1.6.6

用root账号执行以下命令:

tar zxf subversion-1.6.6.tar.gz     #解压到当前目录

cd subversion-1.6.6    #进入解压后的目录

./configure --with-apxs=/local/svnroot/apache2/bin/apxs --prefix=/local/svnroot/subversion --with-apr=/local/svnroot/apache2 --with-apr-util=/local/svnroot/apache2 --with-ssl --enable-maintainer-mode

#定义安装的目标路径(可据自己需要修改),指明Apache的安装路径,使能SSL

make    #编译

make install    #安装

 

3. 安装后的系统设置

用root账号执行以下命令:

useradd svnroot    #创建Linux系统里的账号svnroot

passwd svnroot    #设置svnroot账号的密码

chown –R svnroot.svnroot /local/svnroot    #把svn目录下所有文件改为属于svnroot

chmod 750 /local/svnroot    #把svn目录设为其他Linux用户不可读

 

4. Apache设置

su svnroot    #由root账号切换到svnroot账号来执行以下的命令

vi /local/svnroot/apache2/conf/httpd.conf    #编辑Apache服务器配置文件

下述参数根据自己的安装情况进行相应修改:

ServerRoot "/local/svnroot/apache2"

Listen 80    #可修改为其他的端口,则访问时也要在URL里加上对应的端口号

 

User svnroot

Group svnroot

#前面把svn安装目录的所有文件改为属于svnroot,这里这样设置,那么Apache运行时就会切换到使用该Linux里的账号svnroot与组svnroot

 

ServerAdmin sample@sample.com    #定义一个邮箱地址

ServerName 192.18.1.1    #该主机的地址

 

#ErrorLog "logs/error_log"

ErrorLog "|/local/svnroot/apache2/bin/rotatelogs /local/svnroot/apache2/logs/error_log.%Y%m%d.log 86400 480"

#修改Errorlog记录的方式为按天记录,避免一个log文件过大

 

#CustomLog "logs/access_log" common

CustomLog "|/local/svnroot/apache2/bin/rotatelogs /local/svnroot/apache2/logs/access_log.%Y%m%d.log 86400 480" common

#修改accesslog记录的方式为按天记录,避免一个log文件过大

 

#在末尾开始加入这部分集成LDAP方面使用的参数

LDAPSharedCacheSize 200000

LDAPCacheEntries 1024

LDAPCacheTTL 600

LDAPOpCacheEntries 1024

LDAPOpCacheTTL 600

 

<AuthnProviderAlias ldap abc>

AuthLDAPURL "ldap://192.168.1.1:3268/DC=lala,DC=lala,DC=lala,DC=com?sAMAccountName?sub?(objectClass=*)" NONE

AuthLDAPBindDN "CN=la\, lala,OU=users,OU=lala,ou=lala ,DC=lala,DC=lala,DC=la,dc=com"

AuthLDAPBindPassword "password"

</AuthnProviderAlias>

#这部分指定访问LDAP服务器的URL、用户名、密码

 

RewriteEngine on

RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)

RewriteRule .* - [F]

 

 

include /local/svnroot/apache2/conf/httpd.project

#我把各个库的配置信息用一个独立的文件来管理

 

5. svn库的配置

su svnroot   

#切换到svnroot账号,如果用root账号创建svn库,会有导致无法提交文件到该库的错误

/local/svnroot/subversion/bin/svnadmin create --fs-type fsfs /local/svnroot/repository/sw1

#该命令用svnadmin创建fsfs存储格式的svn库“sw1”

 

vi /local/svnroot/apache2/conf/httpd.project    #创建httpd.project文件,输入以下内容:

<Location /sw1>    #到时访问的路径就是http://hostip/sw1

DAV svn    #使用dav传输

SVNPath /local/svnroot/repository/sw1    #sw1库在Linux系统中的真实物理路径

AuthzSVNAccessFile /local/svnroot/permission/sw1.perm    #配置各个用户访问权限的文件

AuthType Basic

AuthName "sw1 SVN repository."    #客户端访问该库时显示的登陆提示信息

AuthBasicProvider  file abc    #先看文件中是否有该用户名,再看LDAP中有无该用户名

AuthzLDAPAuthoritative off

AuthUserFile /local/svnroot/user/sw1.user    #记录各个用户名与其密码的文件

Satisfy Any    #允许匿名访问,若不允许,可注释掉此行

Require valid-user    #要求用户名与密码验证

</Location>

Shift+分号,输入wq保存后退出编辑模式

:wq

 

vi /local/svnroot/permission/sw1.perm    #创建sw1.perm权限控制文件,输入:

[/]

test = rw    #账号test拥有读写权限

* =      #其他账号没有读写权限

Shift+分号,输入wq保存后退出编辑模式

:wq

 

/local/svnroot/apache2/bin/htpasswd -cm /local/svnroot/user/sw1.user test

#-c参数表明创建文件sw1.user,若此文件已存在,则不要-c参数

#-m表示用MD5加密协议

#此命令往sw1.user里添加用户test,随后设置其密码

 

至此,

安装好了Apache、SVN,

配置好了svn安装目录的权限,

配置好了Apache

建立好了库

设立了库里目录的访问权限

创建了该库的账户

于是,可以运行啦

 

6. 运行SVN服务器

用root账号执行:

/local/svnroot/apache2/bin/apachectl start

然后用IE或TortoiseSVN访问建立好的svn库:

http://hostip/sw1

输入账号test及其密码,应该就能访问了,里面什么内容也没有呢

 

如果是LDAP账户,则只需要在sw1.perm文件里分配权限给相应的账号就可以了,不需要再创建到sw1.user文件里。

相关热词搜索:redhat svn

上一篇:Windows下使用VisualSVN Server搭建SVN服务器 下一篇:SVN-代码版本管理客户端汇总及下载
分享到: 收藏