linux svn 升級,记录一次Linux SVN的搭建过程

一、SVN搭建

服务器: Linux (Red Hat 4.8.5-11)

1、使用WandiscoSVN升级最新版本Subversion

7798fdc7e3bacbfb20380f89ea32bae0.png

ps: 原本使用的是svn-1.8的,但是在下载的时候抛出了异常“Requires: libsas2.so.2()(64bit)”,未能找到解决方案,所以最终搭建1.7版本的

2、安装SVN

[root@localhost ~]# yum install subversion

3、创建svn版本库目录

[root@localhost ~]# mkdir -p /var/svn/svnrepos

4、创建版本库

[root@localhost ~]# svnadmin create /var/svn/svnrepos

执行了这个命令之后会在/var/svn/svnrepos目录下生成如下这些文件

feef2ceaaeab41af293e162009475256.png

5、进入conf目录(该svn版本库配置文件)

authz:文件是权限控制文件

passwd:是帐号密码文件

svnserve.conf:SVN服务配置文件

6、设置帐号密码

[root@localhost ~]# vi passwd

在[users]块中添加用户和密码,格式:帐号=密码,如dan=dan

7、设置权限

[root@localhost ~]# vi authz

在末尾添加如下代码:

[svnrepos:/]

jaren01 = rw

jaren02 = r

* =

ps: jaren01有读写权限,jaren02仅有读的权限,* =标识其他用户没有任何权限

8、修改svnserve.conf文件

[root@localhost ~]# vi svnserve.conf

打开下面的几个注释:

anon-access = read #匿名用户可读

auth-access = write #授权用户可写

password-db = passwd #使用哪个文件作为账号文件

authz-db = authz #使用哪个文件作为权限文件

ps: anon-access = read需要改成anon-access = none,因为read用TortoiseSVN看到日志信息

9、启动svn版本库

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

10、服务器上测试是否成功

[root@localhost ~]# svn co svn://192.168.2.51/svnrepos

输出:Checked out revision 0.

并且会在当前目录下生成svnrepos文件夹

11、确认服务器端口是否开放,默认是3690

以下是Red Hat的端口设置:

[root@localhost ~]# service iptables status

Redirecting to /bin/systemctl status iptables.service

Unit iptables.service could not be found.

安装 iptables-services:

[root@localhost ~]# yum install iptables-services

启动iptables:

[root@localhost ~]# service iptables start

编辑配置文件,将3690端口添加到22端口下:

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

# sample configuration for iptables service

# you can edit this manually or use system-config-firewall

# please do not ask us to add additional ports/services to this default configuration

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-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 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690-j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

重启:

service iptables restart

查看开放端口:

[root@localhost ~]# /sbin/iptables -L -n

Chain INPUT (policy ACCEPT)

target     prot opt source               destination

ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED

ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0

ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0

ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22

ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:3690

REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination

REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination

远端就能通过telnet 测试访问了:

telnet 192.168.2.51 3690

12、之后便可以通过TortoiseSVN连接上SVN了

二、Apache 服务器实现网页访问

1、安装httpd服务

[root@localhost ~]# yum install httpd

检查httpd是否安装成功:

6309f533201b601ac4cc18ec734eeabc.png

2、安装mod_dav_svn

[root@localhost ~]# yum install mod_dav_svn

安装成功后,会有mod_dav_svn.so和mod_authz_svn.so两个文件。

cc4a7b710865f34eca8db49b722dbc5d.png

3、创建svn仓库

[root@localhost ~]# mkdir /var/www/svn

[root@localhost ~]# svnadmin create /var/www/svn/svnrepos

4、配置权限

[root@localhost ~]# chown -R apache:apache /var/www/svn/svnrepos/

创建用户文件passwd:

#创建用户文件

[root@localhost ~]# touch /var/www/svn/passwd

#创建用户admin该用户为网页登陆用户,与svn的用户区分,123456为密码,默认MD5加密

[root@localhost ~]# htpasswd -b /var/www/svn/passwd admin 123456

创建权限文件authz(与SVN的一致即可):

2b9f89224f5bf4856d0a7cea9be4e89d.png

5、配置httpd

[root@localhost ~]# touch /etc/httpd/conf.d/subversion.conf

[root@localhost ~]# vi /etc/httpd/conf.d/subversion.conf

#加入该语句

DAV svn

SVNParentPath /var/www/svn

AuthType Basic

AuthName "Authorization SVN"

AuthzSVNAccessFile /var/www/svn/authz

AuthUserFile /var/www/svn/passwd

Require valid-user

6、启动httpd服务

[root@localhost ~]# systemctl start httpd.service #启动

[root@localhost ~]# systemctl restart httpd.service #重启

[root@localhost ~]# systemctl stop httpd.service #停止

[root@localhost ~]# svnserve -d -r /var/www/svn/ #别忘了SVN启动起来

7、遇到的问题

利用http://xxx进行SVN的同步,报一下错误

Can't open file '/var/www/svn/wizbank/db/txn-current-lock': Permission denied

是因为我的环境防火墙拦截,暂时解决方法是关闭防火墙了

setenforce 0

8、演示db2af56bd58353905cc804f1225588e8.png

905e41bd57def47f99b6ce00a5af9d2f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值