CentOS6.3下安装配置SVN(Subversion)

#检查是否安装了低版本的SVN

[root@localhost ~]# rpm -qa subversion
subversion-1.6.-.el6.x86_64

#卸载旧版本SVN

[root@localhost ~]# yum remove subversion

#安装SVN

[root@localhost Desktop]# yum install subversion
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirrors.hustunique.com
* extras: mirrors.hustunique.com
* updates: mirrors.hustunique.com
base | 3.7 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
updates/primary_db | 4.4 MB 00:25
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package subversion.x86_64 0:1.6.11-9.el6_4 will be installed
--> Finished Dependency Resolution Dependencies Resolved ================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
subversion x86_64 1.6.11-9.el6_4 updates 2.3 M Transaction Summary
================================================================================
Install 1 Package(s) Total download size: 2.3 M
Installed size: 12 M
Is this ok [y/N]: y
Downloading Packages:
subversion-1.6.11-9.el6_4.x86_64.rpm | 2.3 MB 00:15
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>
Package: centos-release-6-3.el6.centos.9.x86_64 (@anaconda-CentOS-201207061011.x86_64/6.3)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : subversion-1.6.11-9.el6_4.x86_64 1/1
Verifying : subversion-1.6.11-9.el6_4.x86_64 1/1 Installed:
subversion.x86_64 0:1.6.11-9.el6_4 Complete!

#确认是否已安装svn模块

[root@localhost ~]# cd /etc/httpd/modules;ls | grep svn
mod_authz_svn.so
mod_dav_svn.so

#创建版本库

[root@localhost ~]# mkdir -p /opt/svn/myRespositories
[root@localhost ~]# svnadmin create /opt/svn/myRepositories

#配置Subversion

#设置用户名与密码:用户名richard,密码:123456

[root@localhost ~]# vi /opt/svn/myRespositories/conf/passwd

### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line. [users]
# harry = harryssecret
# sally = sallyssecret
richard=

#配置权限控制

root@localhost ~]# vi /opt/svn/myRespositories/conf/authz
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average [groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe # [/foo/bar]
# harry = rw
# &joe = r
# * = # [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
richard=rw

#服务配置

[root@localhost ~]#  vi /opt/svn/myRespositories/conf/svnserve.conf

[general]
### These options control access to the repository for unauthenticated
### and authenticated users. Valid values are "write", "read",
### and "none". The sample settings below are the defaults.
#去出注释
anon-access = none
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 the
### directory containing this file. 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
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa. The default realm
### is repository's uuid.
#修该其为版本库地址
realm = /opt/svn/myRespositories [sasl]
### This option specifies whether you want to use the Cyrus SASL
### library for authentication. Default is false.
### This section will be ignored if svnserve is not built with Cyrus
### SASL support; to check, run 'svnserve --version' and look for a line
### reading 'Cyrus SASL authentication is available.'
# use-sasl = true
### These options specify the desired strength of the security layer
### that you want SASL to provide. means no encryption, means
### integrity-checking only, values larger than are correlated
### to the effective key length for encryption (e.g. means -bit
### encryption). The values below are the defaults.
# min-encryption =
# max-encryption = 256
[root@localhost ~]#

#配置iptables端口

[root@localhost ~]# vi /etc/sysconfig/iptables

# Generated by iptables-save v1.4.7 on Sat Jul   ::
*filter
:INPUT ACCEPT [:]
:FORWARD ACCEPT [:]
:OUTPUT ACCEPT [:]
-A INPUT -p tcp -m tcp --dport -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport -j ACCEPT
#加入这一句,将3690及svn默认使用的端口排除在外
-A INPUT -p tcp -m state --state NEW -m tcp --dport -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

#重启防火墙

[root@localhost ~]# service iptables restart
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: nat mangle filter [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
[root@localhost ~]#

#启动SVN

[root@localhost ~]# svnserve -d -r /opt/svn/myRepositories

#检测3690端口是否被占用

[root@localhost ~]# netstat -ln |grep 3690
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN 

#查看SVN进程

[root@localhost ~]# ps -ef|grep svn|grep -v grep
root Sep13 ? :: svnserve -d -r /opt/svn/myRepositories

#关闭SVN进程

[root@localhost ~]# killall svnserve
上一篇:js和jquery实现图片无缝轮播的不同写法


下一篇:一个用得比较广的微信API的XXE外部实体注入漏洞