linux7开放svn,Centos7 (7)安装svn服务器(开机自启动)

本文详细介绍了如何在CentOS7上安装并配置SVN服务器,包括安装步骤、创建版本库、设置用户权限、启动服务以及解决常见问题。同时,还讲解了通过httpd服务搭建SVN访问,并创建用户账户和密码,实现权限控制。最后,提到了防火墙配置和SVN服务的开机启动设置。
摘要由CSDN通过智能技术生成

1、安装svn

yum install subversion

2、查看安装位置

rpm -ql subversion

3、创建svn版本库目录

mkdir -p /usr/local/javasoft/svndata

4、创建存放项目版本库(创建版本库名称flysky)

svnadmin create /usr/local/javasoft/svndata/flysky

5、 关于flysky目录下说明:

hooks目录:放置hook脚步文件的目录

locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存

取文件库的客户端

format目录:是一个文本文件,里边只放了一个整数,表示当前文件库配置的版本号

conf目录:是这个仓库配置文件(仓库用户访问账户,权限)

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

uthz文件是权限控制文件

passwd是帐号密码文件

svnserve.conf SVN服务配置文件

6.1、设置密码账号

vi passwd

[users]

admin = 123456

ts = 123456

6.2 设置权限

vi authz

# vi /svn/test/conf/authz

[groups]

developer = ts

[/]

@developer = rw

admin = r

[/]:表示根目录,即 /var/svnrepos

用户组developer读写权限

admin只读权限

6.3 修改svnserve.conf文件

vi svnserve.conf

打开下面的几个注释:

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

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

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

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

修改

realm = /usr/local/javasoft/svndata # 认证空间名,版本库所在目录

6.4 centos7默认使用 firewalld 而不是 iptables 作为防火墙配置工具

设置 firewalld 开放 svnserve 服务器端口 3690 的命令如下:

firewall-cmd --permanent --add-port=3690/tcp

7、启动svn版本库

svnserve -d -r /usr/local/javasoft/svndata

启动成功后,可用ps查看服务启动是否成功

ps -ef | grep 'svnserve'

[root@localhost conf]# ps -ef | grep 'svnserve'

root 12727 1 0 08:50 ? 00:00:00 svnserve -d -r /usr/local/javasoft/svndata

root 13088 7573 0 08:57 pts/0 00:00:00 grep --color=auto svnserve

8、客户端访问svn服务器

在windows客户端,输入地址:svn://linuxip:3690/flysky

弹出输入用户名和密码,输入即可访问

linux服务器输入命令测试

svn co svn://192.168.2.10:3690/flysky

出现下面内容

认证领域: /usr/local/javasoft/svndata

“root”的密码: (输入linux密码)

认证领域: /usr/local/javasoft/svndata

用户名: ts (输入SVN配置用户名)

“ts”的密码: (输入SVN配置用户名的密码)

后面出现的警告可以通过,你可以通过在“/root/.subversion/servers”中设置选

项“store-plaintext-passwords”为“yes”或“no”来避免

centos7 svn 开机起动

在/usr/lib/systemd/system/添加svnserve.service文件

$OPTIONS修改为 -d -r /usr/local/javasoft/svndata

注:修改service文件后 使用systemctl daemon-reload重新加载

服务命令:

启动svnserve服务: systemctl start svnserve.service

设置开机自启动:systemctl enable svnserve.service

停止开机自启动:systemctl disable svnserve.service

查看服务当前状态:systemctl status svnserve.service

重新启动服务:systemctl restart svnserve.service

查看所有已启动的服务:systemctl list-units --type=service

安装过程中遇到的问题:

1、[root@localhost conf]# svn co svn://127.0.0.1:3690/svnrepos

svn: E200002: Unable to connect to a repository at URL

'svn://127.0.0.1/svnrepos'

svn: E200002: /var/svn/svnrepos/conf/svnserve.conf:19: Option

expected

这是因为修改svnserve.conf时,打开注释时,配置的前面有空格,应该顶格写。修改

后即可

2、[root@localhost ~]# svn co svn://192.168.2.10:3690/flysky

svn: E000013: Unable to connect to a repository at URL

'svn://192.168.2.10/flysky'

svn: E000013: Can't open file '/var/svnrepos/flysky/format':

Permission denied

原因:需要临时关闭SELinux

setenforce 0

SELinux

SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)

临时关闭SELinux

setenforce 0

临时打开SELinux

setenforce 1

查看SELinux状态

getenforce

开机关闭SELinux

编辑/etc/selinux/config文件,如下图,将SELINUX的值设置为disabled。下次

开机SELinux就不会启动了。

防火墙

临时关闭防火墙

systemctl stop firewalld

永久防火墙开机自关闭

systemctl disable firewalld

临时打开防火墙

systemctl start firewalld

防火墙开机启动

systemctl enable firewalld

查看防火墙状态

systemctl status firewalld

配置svn HTTP servers

1、安装http服务

[root@localhost etc]# yum install httpd

2、安装SVN和Apache之间连携用模块mod_dav_svn

[root@localhost etc]# yum install mod_dav_svn

3、查看安装结果

[root@localhost etc]# ls /etc/httpd/modules/ | grep svn

mod_authz_svn.so

mod_dav_svn.so

4、版本库目录指定操作组和权限

[root@localhost etc]# chown -R apache:apache /usr/local/javasoft/svndata(可以不用)

[root@localhost etc]# chmod -R u+rw /usr/local/javasoft/svndata

5、编辑[/etc/httpd/conf.d/subversion.conf]文件

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

DAV svn

SVNPath /usr/local/javasoft/svndata/flysky

AuthType Basic

AuthName "Subversion repos"

AuthUserFile /usr/local/javasoft/svndata/flysky/conf/accesspwd

AuthzSVNAccessFile /usr/local/javasoft/svndata/flysky/conf/authz

Require valid-user

注意点:

AuthType认证类型

AuthName 描述名,随便取

AuthUserFile这个是http协议的访问账户密码文件,后面使用htpasswd命令创建

AuthzSVNAccessFile 权限认证文件,这个跟上面配置svn时候配置的权限设置一样

Require 需要认证用户才可以访问

6 创建账户密码(admin/admin)

[root@localhost conf]# htpasswd -cm /usr/local/javasoft/svndata/flysky/conf/accesspwd admin

New password:

Re-type new password:

Adding password for user admin

7、重启

service httpd restart 或者 systemctl restart httpd.service

8、访问

http://192.168.2.10/flysky/

6bc51012aba2005eae3a4312ea7fdd50.png

参考

https://www.cnblogs.com/gne-hwz/p/8563982.html

svn密码存放位置

~/.subversion/auth/svn.simple/

linux svn服务器上的文件保存

db/svnrepos/是svn版本库目录

db/revs/存储的svn上传文件等的目录

[root@izuf66j2kiq945yl5br4ubz svndata]# cd flysky/

[root@izuf66j2kiq945yl5br4ubz flysky]# ls

conf db format hooks locks README.txt

[root@izuf66j2kiq945yl5br4ubz flysky]# cd db/

[root@izuf66j2kiq945yl5br4ubz db]# ls

current fs-type revprops txn-current uuid

format min-unpacked-rev revs txn-current-lock write-lock

fsfs.conf rep-cache.db transactions txn-protorevs

[root@izuf66j2kiq945yl5br4ubz db]#

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值