记一次Linux(red hat)安装svn的步骤,并用http访问

前言

由于公司物理机老旧(比我小不了多少)服务器宕机,重新来了两台虚拟机以后部署数据库、svn、禅道、项目等;

现在要实现23虚拟机部署svn,24不同主机备份svn

一、安装svn

由于要实现svn在外部的http访问,所以需要安装httpd

1、安装httpd(如果安装了,则跳过)

a、查看可安装的httpd版本

[root@sdw1 /]#  yum list httpd
已加载插件:product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
可安装的软件包
httpd.x86_64  

b、安装

[root@sdw1 /]#  yum install httpd.x86_64

c、启动、停止、重启命令如下

[root@sdw1 /]# server httpd staart

[root@sdw1 /]# service httpd stop

[root@sdw1 /]# service httpd restart

d、查看进程

[root@sdw1 ~]# ps -ef |grep httpd
root     24770     1  0 10:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   24771 24770  0 10:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   24772 24770  0 10:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   24773 24770  0 10:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   24774 24770  0 10:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   24775 24770  0 10:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   24776 24770  0 10:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
root     24822 24800  0 10:45 pts/1    00:00:00 grep --color=auto httpd

二、安装svn

[root@localhost svn]# yum -y install mod_dav_svn  
#会自动安装mod_dav_svn及其依赖包:mod_dav_svn-1.6.11-9,neon-0.29.3-2,pakchois-0.4-3.2,subversion-1.6.11-9  

安装完看此目录/etc/httpd/conf.d/subversion.conf   下是否有该目录和该文件

如果svn不是yum -y install mod_dav_svn 安装则,还需要安装mod_dav_svn 模块 如下

# yum install mod_dav_svn subversion 
必须安装mod_dav_svn 模块 
 
安装完svn后要重启apache 
# service httpd restart 
 
查看测试是否安装svn 模块 
# ls /etc/httpd/modules/ | grep svn 
mod_authz_svn.so 
mod_dav_svn.so 
# svn --version 

三、配置

1、配置svn仓库

#创建svn目录
[root@localhost svn]# mkdir -p /svn/repos1         #仓库1
[root@localhost svn]# mkdir -p /svn/repos2         #仓库2
#可以任意配置,任意指定你喜欢的目录
#建立svn版本库
[root@localhost svn]# svnadmin create /svn/repos1
[root@localhost svn]# svnadmin create /svn/repos2
#有多少个仓库就执行多少次该命令,只需要换最后的名字即可

2、修改svn版本库文件

[root@localhost svn]# vi /svn/repos1/conf/svnserve.conf

修改结果如下

【general】

anon-access = none  #禁止陌生人访问

auth-access = write 

password-dp = /svn/conf/pwd.conf #指向用户配置文件 

authz-db = /svn/conf/authz.conf #指向权限配置文件 

realm = repos1 #指向svn仓库地址

备注:其他仓库配置和该配置相同,只需要修改仓库路径。

3、配置svn用户和权限(svn默认的用户和权限配置文件在版本库的conf目录下,由于多个版本库的这两个文件可以公用,则提出来写成公用的,将原来的删除,一下会操作)

a、配置用户

#创建conf文件夹
[root@localhost svn]# mkdir conf 
#进入文件夹
[root@localhost svn]# cd conf/
#用vim创建该文件,并保存退出
[root@localhost conf]# vim /svn/conf/pwd.conf
#根据提示输入密码,只有第一个用户加-c,其余用户不用-c。
[root@localhost conf]# htpasswd -c /svn/conf/pwd.conf admin 
[root@localhost conf]# htpasswd  /svn/conf/pwd.conf test
#修改文件,在第一行加[users]
[root@localhost conf]# vi /svn/conf/pwd.conf

  备注:加[user]非常重要,因为用htpasswd的方式加用户会负载掉[users],所以每次加完用户,都需要补一下该节点。

修改完pwd.conf文件展示如下:

[users]
admin:$apr1$S/Z1cGaA$b4aPyeR464FABJpz7JDKL/
test:$apr1$FoMBTEg4$.67ICj7xw1nIBZQClCfQx/
~                                                                               
~                                                                              
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                         

格式

用户名:密码(密码是http访问自动加密)

b、配置权限

#在conf文件夹下创建authz.conf文件
[root@localhost conf]# vim /svn/conf/authz.conf
#文件内容如下:
[groups]
admin=admin,user1,user2
test= user3
[/]
@admin=rw
[repos1:/]
user3=r

[groups]是定义组,格式为:组名称=用户名称,用户名称

 [/]表示:根目录下的权限定义

 

 [repos1:/]表示:仓库下的权限定义

如果要分项目,则以此类推:

如:[repos1:/aaa]则表示仓库下的aaa项目的权限定义

@admin表示:admin这个组下的用户权限

user1=1表示:user1这个用户的权限

(注意:权限类型:r,w,rw 分别表示只读,只写,读写如果是user1= 这种空情况则表示没有

c、至此,svn配置完成,删除默认的配置文件

[root@localhost conf]# rm -rf /svn/repos1/conf/passwd
[root@localhost conf]# rm -rf /svn/repos2/conf/authz

(注:若为多个仓库,删除多个仓库的备注即可)

d、建立启动svn的账户

[root@localhost svn]# useradd svn                 #如果提示svn账户已存在,则执行以下命令
[root@localhost svn]# passwd svn                  #根据提示修改密码,不能过于简单,可使用常用密码
[root@localhost svn]# chown -R svn:svn /svn/      #允许用户svn访问版本库
[root@localhost svn]# chmod -R o+rw /svn          #解决windows检出提交信息/svn/db/txn-current-lock的错误

e、配置svn的端口

vi /etc/httpd/conf/httpd.conf

找到如下字段:

#Listen 12.34.56.78:80

Listen 80

然后修改80,默认80,可改81等

f、配置httpd

[root@sdw1 /etc/rc.d/init.d]# vi /etc/httpd/conf.d/subversion.conf 

修改结果如下

<Location /svn>
    DAV svn
    SVNListParentPath on
    SVNParentPath /svn
    AuthType Basic
    AuthName "Authorization"
    AuthUserFile /svn/conf/passwd.conf
    AuthzSVNAccessFile /svn/conf/authz.conf
    Require valid-user
</Location>
~             

 

保存退出,重启httpd服务

[root@localhost svn]# service httpd restart

g、启动svn

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

h、查看svn服务是否正常

[root@localhost svn]# ps aux|grep svn
#出现以下内容,说明svn服务启动成功
root      3072  0.0  0.1 156996   768 ?        Ss   00:04   0:00 svnserve -d -r /svn/
root      3084  0.0  0.1 103252   832 pts/2    S+   00:04   0:00 grep svn

i、进入浏览器访问

在浏览器中输入:服务器ip+端口+httpd配置中的<Location /svn>

如:http://10.xx.xx.xx:80/svn/repos1

提示用户名密码

四、我遇到的错误

internal server error

解决错误

在apache配置文件httpd.conf中搜索 
AllowOverride None 
然后改为AllowOverride All 
然后在找到 
LoadModule rewrite_module modules/mod_rewrite.so 
把这个前面的“#”号去掉,就是去掉注释,如果没有则添加上,然后重启apache.搞定!

service httpd restart

参考 :https://blog.csdn.net/Liucheng417/article/details/49510557

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值