• svn服务器配置以及自动同步到web服务器


    感觉再不用svn就真的老了。

    安装

    yum install subversion
    

    新建repo

    mkdir -p /opt/svn/myrepo
    svnadmin create /opt/svn/myrepo
    

    修改repo的配置文件

    vim /opt/svn/myrepo/conf/svnserve.conf
    

    内容修改为:

    ### This file controls the configuration of the svnserve daemon, if you
    ### use it to allow access to this repository.  (If you only allow
    ### access through http: and/or file: URLs, then this file is
    ### irrelevant.)
    
    ### Visit http://subversion.apache.org/ for more information.
    
    [general]
    ### The anon-access and auth-access options control access to the
    ### repository for unauthenticated (a.k.a. anonymous) users and
    ### authenticated users, respectively.
    ### Valid values are "write", "read", and "none".
    ### Setting the value to "none" prohibits both reading and writing;
    ### "read" allows read-only access, and "write" allows complete 
    ### read/write access to the repository.
    ### The sample settings below are the defaults and specify that anonymous
    ### users have read-only access to the repository, while authenticated
    ### users have read and write access to the repository.
    anon-access = read
    auth-access = write
    ### The password-db option controls the location of the password
    ### database file.  Unless you specify a path starting with a /,
    ### the file's location is relative to the directory containing
    ### this configuration file.
    ### If SASL is enabled (see below), this file will NOT be used.
    ### Uncomment the line below to use the default password file.
    password-db = passwd
    ### The authz-db option controls the location of the authorization
    ### rules for path-based access control.  Unless you specify a path
    ### starting with a /, the file's location is relative to the the
    ### directory containing this file.  If you don't specify an
    ### authz-db, no path-based access control is done.
    ### Uncomment the line below to use the default authorization file.
    authz-db = authz
    ### This option specifies the authentication realm of the repository.
    ### If two repositories have the same authentication realm, they should
    ### have the same password database, and vice versa.  The default realm
    ### is repository's uuid.
    realm = myrepo   ##!!要和你前面的repo名字一致
    ### The force-username-case option causes svnserve to case-normalize
    ### usernames before comparing them against the authorization rules in the
    ### authz-db file configured above.  Valid values are "upper" (to upper-
    ### case the usernames), "lower" (to lowercase the usernames), and
    ### "none" (to compare usernames as-is without case conversion, which
    ### is the default behavior).
    # force-username-case = none
    
    [sasl]
    ### This option specifies whether you want to use the Cyrus SASL
    ### library for authentication. Default is false.
    ### This section will be ignored if svnserve is not built with Cyrus
    ### SASL support; to check, run 'svnserve --version' and look for a line
    ### reading 'Cyrus SASL authentication is available.'
    # use-sasl = true
    ### These options specify the desired strength of the security layer
    ### that you want SASL to provide. 0 means no encryption, 1 means
    ### integrity-checking only, values larger than 1 are correlated
    ### to the effective key length for encryption (e.g. 128 means 128-bit
    ### encryption). The values below are the defaults.
    # min-encryption = 0
    # max-encryption = 256
    

    添加用户

    vim /opt/svn/project/conf/passwd
    
    [users]
    # harry = harryssecret
    # sally = sallyssecret
    chris = my_password
    

    修改用户访问策略

    vim /opt/svn/project/conf/authz
    [groups]
    repositories = chris
    [/]
    @repositories = rw
    chris = rw
    

    启动和关闭svn服务

    svnserve -d -r /opt/svn/repositories
    
    killall svnserve  
    

    注意 如果开启了防火墙,记得放行相应端口

    同步到web服务器

    假设web服务器中,本项目myrepo对应/var/www/html/mall目录.
    要先到web服务器中项目目录下svn checkout:

    cd /var/www/html/mall
    svn check svn://218.244.143.208
    

    然后配置/opt/svn/myrepo/hooks/post-commit内容为:

    #!/bin/sh
    #设定环境变量,如果没有设定可能会出现update报错
    export LANG=zh_CN.UTF-8
    
    REPOS="$1"
    REV="$2"
    
    SVN_PATH=/usr/bin/svn
    WEB_PATH=/var/www/html/mall
    LOG_PATH=/tmp/svn_update.log
    echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
    echo `whoami`,$REPOS,$REV >> $LOG_PATH
    $SVN_PATH update --username chris --password pipe42 $WEB_PATH --no-auth-cache >> $LOG_PATH
    chown -R apache:apache $WEB_PATH
    

    并注意修改post-commit文件权限:

    chmod +x post-commit
    chown apache:apache post-commit
    

    好了,大功告成,现在在开发机上用svn客户端软件,把repo们checkout到本地,然后add和commit后,web服务器上会自动同步!

  • 相关阅读:
    vim配置
    Linux命令博客目录
    操作系统博客目录
    Docker基础命令(快速入门)
    MQTT遗愿(last will) paho.mqtt实现
    Docker使用阿里云镜像加速器
    汉诺塔问题(递归)
    Qt使用QJSEngine执行脚本
    mysql修改密码,开放远程访问权限
    mysql数据库表数据导出与导入
  • 原文地址:https://www.cnblogs.com/zjutzz/p/4808893.html
Copyright © 2020-2023  润新知