zoukankan      html  css  js  c++  java
  • Linux下SVN+Apache+iF.svnadmin搭建

    SVN:集中式版本控制工具

    iF.svnadmin:版本控制SVN可视化管理工具,用来管理SVN用户、用户组以及权限分配。

    环境:centos6.6

    IP:192.168.31.10

    首先:yum -y update  #更新全部软件包

    yum -y install httpd   # 安装Apache

    apachectl -v #查看Apache版本

    yum -y install mod_dav_svn subversion   #安装SVN加载模块以及SVN

    svn --version       #查看SVN版本

    yum -y install php  # 安装PHP(iF.svnadmin是用PHP编写开发的工具)

    php -v         #查看PHP版本

    wget https://sourceforge.net/projects/ifsvnadmin/files/svnadmin-1.6.2.zip/download   #下载 iF.svnadmin压缩包

    unzip download #解压压缩包

    cp -r  iF.svnadmin.1.6.2/ /var/www/html/svnadmin  #把压缩包复制到http默认路径下

    vi /etc/httpd/conf.d/subversion   #修改SVN模块配置文件

    LoadModule dav_svn_module     modules/mod_dav_svn.so  

     LoadModule authz_svn_module   modules/mod_authz_svn.so    #这两行判断Apache是否加载了SVN模块

    <Location /svn>        #标签

            DAV svn           #DAV加载SVN

            SVNParentPath /var/www/svn    #这是版本库的根目录,用户不允许访问

            AuthType Basic                        #访问方式为basic

            AuthName "please login"         #登录时的提示信息

            AuthUserFile /var/www/svn/passwd      #用户以及口令的配置文件

            AuthzSVNAcessFile /var/www/svn/authz  #保存用户权限的文件    

            Require valid-user                #允许用户访问

    </Location>

    #保存退出

    vi /etc/httpd/conf/httpd.con

    ServerName 192.168.31.10 #保存退出

    iptables -I INPUT -p tcp --dport 80 -j ACCEPT   #设置防火墙

    通过网页访问服务器Apache:http://192.168.31.10查看是否出现Apache页面

    mkdir  /var/www/svn

    touch /var/www/svn/authz

    touch /var/www/svn/passwd

    chown -R apache:apache /var/www/html/svnadmin/

    chmod -R 777 /var/www/html/svnadmin/data

    chown -R apache:apache /var/www/svn

    cp /var/www/html/svnadmin/data/config.tpl.ini /var/www/html/svnadmin/data/config.ini        #将样例文件复制为配置文件

    vi /var/www/html/svnadmin/data/config.ini

    [Common]

    FirstStart=1

    BackupFolder=./data/backup/

    [Translation]

    Directory=./translations/

    [Engine:Providers]

    AuthenticationStatus=basic
    UserViewProviderType=passwd

    UserEditProviderType=passwd

    GroupViewProviderType=svnauthfile

    GroupEditProviderType=svnauthfile

    AccessPathViewProviderType=svnauthfile

    AccessPathEditProviderType=svnauthfile

    RepositoryViewProviderType=svnclient

    RepositoryEditProviderType=svnclient

    [ACLManager]   #管理员用户配置文件

    UserRoleAssignmentFile=./data/userroleassignments.ini   #配置文件路径

    [Subversion]

    SVNAuthFile=/var/www/svn/authz     #subversion用户权限文件路径

    [Repositories:svnclient]

    SVNParentPath=/var/www/svn     #版本库根目录,后面没有/符号

    SvnExecutable=/usr/bin/svn      #SVN执行命令变量路径,可以在命令行通过whereis svn查看

    SvnAdminExecutable=/usr/bin/svnadmin    #SVNadmin命令变量路径,同上

    [Users:passwd]

    SVNUserFile=/var/www/svn/passwd       #用户口令配置文件

    [Users:digest]

    SVNUserDigestFile=
    SVNDigestRealm=SVN Privat

    [Ldap]

    HostAddress=ldap://192.168.136.130:389/

    ProtocolVersion=3

    BindDN=CN=Manuel Freiholz,CN=Users,DC=insanefactory,DC=com
    BindPassword=root

    CacheEnabled=false
    CacheFile=./data/ldap.cache.json

    [Users:ldap]

    BaseDN=DC=insanefactory,DC=com
    SearchFilter=(&(objectClass=person)(objectClass=user))
    Attributes=sAMAccountName
    [Groups:ldap]
    BaseDN=DC=insanefactory,DC=com
    SearchFilter=(objectClass=group)
    Attributes=sAMAccountName

    GroupsToUserAttribute=member

    GroupsToUserAttributeValue=distinguishedName

    [Update:ldap]
    AutoRemoveUsers=true
    AutoRemoveGroups=true

    [GUI]
    RepositoryDeleteEnabled=false          #可以通过网页删除版本库,默认是禁止,如果允许,修改成true 即可
    RepositoryDumpEnabled=false         #默认即可
    AllowUpdateByGui=true                  #默认即可
    #保存退出

     启动Apache:service httpd start

    访问页面:http://192.168.31.10/svnadmin

    点击左下角save configuration提交,之前在配置文件 /var/www/html/svnadmin/data/config.ini 设置过,默认即可

    初始用户密码为admin,admin,登录进行操作即可

     可以选择中文语言,admin是初始系统管理员,修改密码,然后进行用户、用户组以及权限分配操作。

    svn 访问路径需要管理员指定,才能进行登录访问。

    此文章仅做个人笔记使用

    将http协议改成HTTPS协议:

    yum –y install mod_ssl openssl

    cd /etc/pki/tls/private

    openssl genrsa –out ca.key 1024

    openssl req –new –key ca.key –out ca.csr

    cd /etc/pki/tls/certs/

    openssl x509 -req -days 365 -in /etc/pki/tls/private/ca.csr -signkey /etc/pki/tls/private/ca.key –out ca.crt

    vi /etc/httpd/conf.d/ssl.conf

    SSLCertificateFile /etc/pki/tls/certs/ca.crt

    SSLCertificateKeyFile /etc/pki/tls/private/ca.key

    #保存退出

    vi /etc/httpd/conf/httpd.conf

    Listen 80

    <VirtualHost _default_:80>

    SSLEngine on

    SSLCertificateFile /etc/pki/tls/certs/ca.crt

    SSLCertificateKeyFile /etc/pki/tls/private/ca.key

    SSLCertificateChainFile /etc/pki/tls/certs/ca.crt

    </VirtualHost>

    #保存退出

    service httpd restart

    通过https://192.168.31.20:80访问成功

    当想要为服务器创建多个版本库的根路径时,需要在Apache的配置文件/etc/htttpd/conf.d/subversion.conf中添加多个location标签,其格式与第一个相同,

    <Location /repo1>        #标签

            DAV svn           #DAV加载SVN

            SVNParentPath /var/www/svn/repo1    #这是版本库的根目录,用户不允许访问

            AuthType Basic                        #访问方式为basic

            AuthName "please login"         #登录时的提示信息

            AuthUserFile /var/www/svn/passwd      #用户以及口令的配置文件

            AuthzSVNAcessFile /var/www/svn/authz  #保存用户权限的文件    

            Require valid-user                #允许用户访问

    </Location>

    添加第二个根路径就可以在这之后添加代码:

    <Location /repo2>        #标签

            DAV svn           #DAV加载SVN

            SVNParentPath /var/www/svn/repo2    #这是版本库的根目录,用户不允许访问

            AuthType Basic                        #访问方式为basic

            AuthName "please login"         #登录时的提示信息

            AuthUserFile /var/www/svn/passwd      #用户以及口令的配置文件

            AuthzSVNAcessFile /var/www/svn/authz  #保存用户权限的文件    

            Require valid-user                #允许用户访问

    </Location>

    保存退出,只是标红地方不同,其他不用更改。

    还要修改iF.svnadmin管理里工具的配置文件,此文章中是在/var/www/html/svnadmin/data/conf.ini中

    [Repositories:svnclient]

    SVNParentPath=/var/www/svn/repo1     #版本库根目录,后面没有/符号

    SvnExecutable=/usr/bin/svn      #SVN执行命令变量路径,可以在命令行通过whereis svn查看

    SvnAdminExecutable=/usr/bin/svnadmin    #SVNadmin命令变量路径,同上

    之后添加:

    [Repositories:svnclient:1]

    SVNParentPath=/var/www/svn/repo2     #版本库根目录,后面没有/符号

    SvnExecutable=/usr/bin/svn      #SVN执行命令变量路径,可以在命令行通过whereis svn查看

    SvnAdminExecutable=/usr/bin/svnadmin    #SVNadmin命令变量路径,同上

    只是标红的地方不同,添加修改,保存退出。

    重启Apache。

  • 相关阅读:
    游戏编程模式--原型模式
    游戏编程模式--观察者模式
    游戏编程模式--享元模式
    游戏编程模式--命令模式
    mybatis的线程安全
    开发遇到的问题
    spring的ThreadLocal解决线程安全
    i++
    jvm内存初步了解
    注解@RequestMapping,@RequestBody
  • 原文地址:https://www.cnblogs.com/xinxiao/p/7299309.html
Copyright © 2011-2022 走看看