zoukankan      html  css  js  c++  java
  • Linux下SVN服务器同时支持Apache的http和svnserve独立服务器两种模式且使用相同的访问权限账号

    说明:

    服务器操作系统:CentOS 6.x

    服务器IP:192.168.21.134

    实现目的:

    1、在服务器上安装配置SVN服务;

    2、配置SVN服务同时支持Apache的http和svnserve独立服务器两种模式访问;

    3、Apache的http和svnserve独立服务器两种模式使用相同的访问权限账号。

    具体操作:

    一、关闭SELINUX

    vi /etc/selinux/config

    #SELINUX=enforcing #注释掉

    #SELINUXTYPE=targeted #注释掉

    SELINUX=disabled #增加

    :wq! #保存退出

    setenforce 0 #使配置立即生效

    二、开启防火墙端口

    系统运维  www.osyunwei.com  温馨提醒:系统运维原创内容©版权所有,转载请注明出处及原文链接

    基于Apache的http模式,默认端口为80

    基于svnserve的独立服务器模式,默认端口为3690

    vi /etc/sysconfig/iptables #编辑防火墙配置文件

    # Firewall configuration written by system-config-firewall

    # Manual customization of this file is not recommended.

    *filter

    :INPUT ACCEPT [0:0]

    :FORWARD ACCEPT [0:0]

    :OUTPUT ACCEPT [0:0]

    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    -A INPUT -p icmp -j ACCEPT

    -A INPUT -i lo -j ACCEPT

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

    -A INPUT -j REJECT --reject-with icmp-host-prohibited

    -A FORWARD -j REJECT --reject-with icmp-host-prohibited

    COMMIT

    :wq! #保存退出

    service iptables restart #最后重启防火墙使配置生效

    三、安装Apache

    yum install httpd apr apr-util httpd-devel #安装Apache

    yum install mod_dav_svn mod_auth_mysql #安装基于Apache的http模式访问的支持模块

    chkconfig httpd on #设置开机启动

    service httpd start #启动Apache

    httpd -version #查看Apache版本信息

    cd /etc/httpd/modules/

    #查看是否有mod_dav_svn.so和mod_authz_svn.so模块,如果有,说明mod_dav_svn安装成功!

    #mod_auth_mysql模块是用数据库存储账号信息,本次教程没有涉及,可以不安装!

    注意:如果Apache启动之后提示错误:

    httpd:httpd: Could not reliably determine the server's fully qualif domain name, using ::1 for ServerName

    解决办法:

    vi /etc/httpd/conf/httpd.conf #编辑

    ServerName www.example.com:80 #去掉前面的注释

    :wq! #保存退出

    四、安装SVN

    yum install subversion #使用yum命令在线安装

    svnserve --version #查看svn版本信息

    五、配置SVN

    1、创建svn版本库

    mkdir -p /home/svn #创建svn版本库存放目录

    cd /home/svn #进入目录

    svnadmin create /home/svn/project1 #创建svn版本库project1

    svnadmin create /home/svn/project2 #创建svn版本库project2

    svnadmin create /home/svn/project3 #创建svn版本库project3

    2、设置配置文件

    mkdir -p /home/svn/conf #创建配置文件目录

    cp /home/svn/project1/conf/passwd /home/svn/conf/passwd #拷贝账号密码配置文件模板

    cp /home/svn/project1/conf/authz /home/svn/conf/authz #拷贝目录权限配置文件模板

    cp /home/svn/project1/conf/passwd /home/svn/conf/svnserve.conf #拷贝全局配置文件模板

    vi /home/svn/conf/passwd #编辑,添加以下代码

    [users]

    # harry = harryssecret

    # sally = sallyssecret

    osyunwei=123456

    osyunwei1=123456

    osyunwei2=123456

    osyunwei3=123456

    :wq! #保存退出

    vi /home/svn/conf/authz #编辑,添加以下代码

    [groups]

    admin = osyunwei

    project1 = osyunwei1

    project2 = osyunwei2

    project3 = osyunwei3

    [/]

    @admin = rw

    * =

    [project1:/]

    @admin = rw

    @project1 = rw

    * =

    [project2:/]

    @admin = rw

    @project2 = rw

    * =

    [project3:/]

    @admin = rw

    @project3 = rw

    * =

    :wq! #保存退出

    vi /home/svn/conf/svnserve.conf #配置全局文件,在最后添加以下代码

    [general]

    anon-access=none #禁止匿名访问,设置为none。默认为read,参数:read,write,none

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

    password-db=/home/svn/conf/passwd #用户账号密码文件路径,可以写绝对路径

    authz-db=/home/svn/conf/authz #访问控制权限文件路径,可以写绝对路径

    realm=svn #每个SVN项目的认证命,会在认证提示里显示,建议写项目名称。

    :wq! #保存退出

    3、启动SVN

    svnserve -d -r /home/svn --config-file /home/svn/conf/svnserve.conf --listen-port 3690

    #--config-file后面跟全局配置参数文件

    ps -ef|grep svn|grep -v grep #查看进程

    netstat -ln |grep 3690 #检查端口

    killall svnserve #关闭svn

    4、设置svn服务开机启动

    系统运维  www.osyunwei.com  温馨提醒:系统运维原创内容©版权所有,转载请注明出处及原文链接

    vi /etc/init.d/svn #编辑,添加以下代码

    #!/bin/sh

    # chkconfig: 2345 85 85

    # processname: svn

    svn_bin=/usr/local/svn/bin

    svn_port=3690

    svn_home=/home/svn

    svn_config=/home/svn/conf/svnserve.conf

    if [ ! -f "$svn_bin/svnserve" ]

    then

    echo "svnserver startup: cannot start"

    exit

    fi

    case "$1" in

    start)

    echo "Starting svnserve..."

    $svn_bin/svnserve -d -r $svn_home --config-file $svn_config --listen-port $svn_port

    echo "Successfully!"

    ;;

    stop)

    echo "Stoping svnserve..."

    killall svnserve

    echo "Successfully!"

    ;;

    restart)

    $0 stop

    $0 start

    ;;

    *)

    echo "Usage: svn { start | stop | restart } "

    exit 1

    esac

    :wq! #保存退出

    chmod +x /etc/init.d/svn #添加执行权限

    chkconfig svn on #开机自启动

    service svn start #启动

    六、配置svn支持http访问

    1、创建账号密码认证文件

    htpasswd -cm /home/svn/conf/http_passwd osyunwei

    htpasswd -m /home/svn/conf/http_passwd osyunwei1

    htpasswd -m /home/svn/conf/http_passwd osyunwei2

    htpasswd -m /home/svn/conf/http_passwd osyunwei3

    根据提示输入2次密码即可。

    注意:

    /home/svn/conf/目录下面passwd文件是svnserve独立服务器使用的认证文件,密码没有加密,明文显示。

    /home/svn/conf/目录下面http_passwd文件是Apache的http模式使用的认证文件,密码使用MD5加密。

    passwd和http_passwd文件中,账号密码必须设置相同。

    2、设置Apache配置文件

    vi /etc/httpd/conf.d/subversion.conf #编辑,在最后添加以下代码

    <Location /svn>

    DAV svn

    #SVNPath /home/svn

    SVNParentPath /home/svn

    # # Limit write permission to list of valid users.

    # <LimitExcept GET PROPFIND OPTIONS REPORT>

    # # Require SSL connection for password protection.

    # # SSLRequireSSL

    #

    AuthType Basic

    AuthName "Authorization SVN"

    AuthzSVNAccessFile /home/svn/conf/authz

    AuthUserFile /home/svn/conf/http_passwd

    Require valid-user

    # </LimitExcept>

    </Location>

    :wq! #保存退出

    3、设置目录权限

    chown apache:apache /home/svn -R #设置svn目录所有者为Apache服务运行账号apache

    4、重启Apache服务

    service httpd restart #重启

    七、测试svn

    Windows下安装svn客户端TortoiseSVN。

    TortoiseSVN下载地址:http://tortoisesvn.net/downloads.html

    安装完成之后,桌面-右键单击,选择TortoiseSVN-版本库浏览器

    URL输入:svn://192.168.21.134/project1

    用户名:osyunwei1

    密码:123456

    勾选:保存认证

    确定

    可以进入project1版本库目录,右键单击之后,可以选择创建文件夹等操作。

    URL输入:http://192.168.21.134/svn/project1

    用户名和密码跟上面一样,可以进入project1版本库目录,右键单击之后,可以选择创建文件夹等操作。

    project1访问:

    svn://192.168.21.134/project1

    http://192.168.21.134/svn/project1

    用户名:osyunwei1

    密码:123456

    project2访问:

    svn://192.168.21.134/project2

    http://192.168.21.134/svn/project2

    用户名:osyunwei2

    密码:123456

    project3访问:

    svn://192.168.21.134/project3 #svnserve独立服务器模式

    http://192.168.21.134/svn/project3 #Apache的http模式

    用户名:osyunwei3

    密码:123456

    扩展阅读:

    1、Apache htpasswd命令选项参数说明

    -c 创建一个加密文件

    -n 不更新加密文件,只将apache htpasswd命令加密后的用户名密码显示在屏幕上

    -m 默认apache htpassswd命令采用MD5算法对密码进行加密

    -d apache htpassswd命令采用CRYPT算法对密码进行加密

    -p apache htpassswd命令不对密码进行进行加密,即明文密码

    -s apache htpassswd命令采用SHA算法对密码进行加密

    -b 在apache htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码

    -D 删除指定的用户

    2、SVNPath 与 SVNParentPath区别:

    SVNParentPath:支持多个相同父目录的SVN版本库。

    SVNPath:只支持一个主目录的SVN版本库,如果在主目录下面建新项目,则提示无权访问。

    至此,Linux下SVN服务器同时支持Apache的http和svnserve独立服务器两种模式且使用相同的访问权限账号教程完成。

  • 相关阅读:
    mysql数据库优化课程---3、数据库设计是什么
    mysql数据库优化课程---2、命令其实也就是那几个单词
    mysql数据库优化课程---1、数据库的本质是什么
    php特级课---4、网站服务监控(常用网站服务监控软件有哪些)
    php特级课---5、网络数据转发原理
    php特级课---3、常用的网站加速技术有哪些
    php特级课---2、网站大数据如何存储
    php特级课---1、网站大访问量如何解决
    网络工程师课程---7、网络通信综合实验(做网络基础综合实验 用什么软件)
    Objective-C路成魔【2-Objective-C 规划】
  • 原文地址:https://www.cnblogs.com/Kinge/p/9724154.html
Copyright © 2011-2022 走看看