SVN(http)服务器搭建

简介

近期出于工作需要,需要在云服务器上布置一个centos7的服务器,并搭建好svn服务器。在这里记录一下搭建过程。

在此过程中,主要参考了3个教程。

  1. centos7搭建SVN+Apache+IF.svnadmin支持https实现web管理SVN

  2. 查看SELinux状态&关闭SELinux

  3. php chmod 777 if.svnadmin web 服务器 奇葩问题

按理说来照着这3个教程走一遍流程,也就能完成了,但笔者担心万一此后这3篇博文出于某些乱七八糟的原因而无法找到,故仍在下文记录了整个流程,以供将来查询。

搭建过程

安装插件

  1. 安装apache服务
    yum install httpd -y
  2. 安装svn服务(其中,mod_dav_svn是apache服务器访问svn的一个模块)
    yum install mod_dav_svn subversion -y
  3. 安装iF.SVNAdmin(SVN的Web端GUI)
    yum install php -y

配置插件

  1. vim /etc/httpd/conf.d/subversion.conf
  2. LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
    <Location /svn>
    DAV svn
    SVNParentPath /var/www/svn   #svn的根目录SSLRequireSSL                #SSL访问权限
    AuthType Basic               #Basic认证方式
    AuthName "Authorization SVN"   #认证时显示的信息
    AuthUserFile /var/www/svn/passwd      #用户文件&密码
    AuthzSVNAccessFile /var/www/svn/authz  #访问权限控制文件
    Require valid-user            #要求真实用户,不能匿名
    </Location>
  3. 建立svn仓库
    1. 这里要注意svn仓库的根目录要和上一步配置的SVNParentPath一致
      mkdir /var/www/svn
    2. 建立代码仓库sungeek
      svnadmin create /var/www/svn/sungeek
    3. ls /var/www/svn/sungeek
      --->  conf  db  format  hooks  locks  README.txt
    4. 给apache(即httpd服务)权限
      chown -R apache.apache /var/www/svn
    5. 创建用户文件passwd和权限控制文件authz
      touch /var/www/svn/passwd
      touch /var/www/svn/authz
  4. 配置iF.SVNAdmin
    1. wget http://sourceforge.net/projects/ifsvnadmin/files/svnadmin-1.6.2.zip/download
    2. unzip download
    3. cd /var/www/html
      chown -R apache.apache svnadmin
    4. cd /var/www/html/svnadmin
      chmod -R 777 data
      在这一步要注意,可能有的centos7开启了SELinux,即使这里给予了权限,但仍会导致iF.SVNAdmin无法使用。必须关闭SELinux才可以。
  5. 关闭SELinux
    1. 查看状态,如果disable则已经关闭,可以跳过以下步骤
      getenforce
    2. 临时关闭
      setenforce 0
    3. 永久关闭
      vim /etc/selinux/config
      将SELINUX=enforcing改为SELINUX=disabled
      # This file controls the state of SELinux on the system.
      # SELINUX= can take one of these three values:
      #     enforcing - SELinux security policy is enforced.
      #     permissive - SELinux prints warnings instead of enforcing.
      #     disabled - No SELinux policy is loaded.
      SELINUX=enforcing    #这里改成disabled
      # SELINUXTYPE= can take one of three two values:
      #     targeted - Targeted processes are protected,
      #     minimum - Modification of targeted policy. Only selected processes are protected. 
      #     mls - Multi Level Security protection.
      SELINUXTYPE=targeted
      

       

  6. 通过查看文件/usr/lib/systemd/system/svnserve.service, 了解到svnserver的配置文件是/etc/sysconfig/svnserve
    修改/etc/sysconfig/svnserve
    1. vim /etc/sysconfig/svnserve
      OPTIONS="-r /var/svn"  ======> OPTIONS="-r /var/www/svn"
      同理,这里的路径也是和上面配置的SVN根目录保持一致
  7. 开启http服务
    1. firewall-cmd --permanent --add-service=http
    2. firewall-cmd --permanent --add-service=https
    3. firewall-cmd --reload
    4. 通过如下命令来启用服务
      systemctl start httpd.service
    5. 如下命令使其开机自启动  
      systemctl enable httpd.service
    6. 重启Apache
      systemctl restart httpd.service
  8. 在iF.SVNAdmin配置svn
    1. 在浏览器里输入 http://ip/svnadmin,配置如下图,配置后可以通过Test来测试是否正常
    2. 保存后,会提示默认的账户为admin/admin。
      而此后的配置,通过此GUI就方便很多了。笔者就不过多介绍了

后记

在搭建的时候,使用iF.SVNAdmin出现提示,没有办法复制svnadmin/data/...

但明明此前是通过chmod给予权限了的,在网上查找了资料后发现可能是SELinux的问题,关闭之后果然ok了。

特此记录,以防忘记。

引用:

与简介中的链接一样,只是这里直接写明链接地址

https://www.cnblogs.com/Sungeek/p/6905102.html

https://blog.csdn.net/Tommycaokai/article/details/79045873

https://blog.csdn.net/ggxiaobai/article/details/53505095

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值