zoukankan      html  css  js  c++  java
  • 【转】linux(Ubuntu)配置svn仓库,搭建svn服务器

    原文网址:http://blog.1v2d.com/322.html

    在家里搞了好久,终于搞出来,并且在线上已经成功搭建成功,在这感谢一个博主的文章,本篇文章也主要是转载他的内容,写的非常好,而且非常实用,通俗易懂,可能做的过程会遇到问题,没事,大家慢慢研究,会成功的,文章我已做优化,就是我在搭建的过程出现的问题.

    转自:dazeair

    原文地址:http://dazeair.blog.51cto.com/4024187/1421178

    系统:Ubuntu 12.04 64位 lnmp环境

    集成软件:PHP5.4.27、Nginx1.6.0、MySQL5.5.37

    阿里云服务器

    svn服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊。我这里是独立的服务器,svnserver。第一次接触感觉很麻烦,网上搜了很多,最后摸索出了一个适合阿里云服务器的环境配置方案。当然也适合普通服务器,linux系统。

    --------------------------------------------------------------------------------------------------------------------------------------------

    1,首先当然就是下载安装svnserver了

    两种方法

    # yum install subversion  //centos系列 复制这行
    # apt-get install subversion //ubuntu系列系统复制这行

    2,然后就是创建svn仓库我是创建在 /var/svndata目录下www目录的,这里目录可以自己定。当然这个目录得提前创建好

    # cd /var
    # mkdir svndata
    # cd svndata
    # mkdir www

    然后就是创建仓库了

    # svnadmin create /var/svndata/www

    修改配置文件

    进入/var/svndata/www目录(这里的www目录不是网站的web目录,仓库名为www)

    # cd /var/svndata/www
    # ls

    会看到conf、hooks、db等目录,我们会用到的也就conf(配置目录)hooks(设置钩子,后面会讲到)

    进入conf目录

    # cd www

    首先配置svnserve.conf

    # vim svnserve.conf

    修改(把前面的#号去掉,配置后面的值,共修改五行代码,后面的值是修改过得,大家看清楚)

    anon-access = none
    auth-access = write
    password-db = passwd
    authz-db = authz
    realm = www

    在passwd文件中添加用户,此步骤就是添加svn用户名和密码,

    # vim passwd

    [users]

    admin = 123456

    dazeair = 123456

    user1 = 123456

    user2 = 123456

    这里设置了四个用户,分别为admin,dazeair,user1和user2。根据情况不同可以随意设置。

    在authz中添加组和权限

    # vim authz

    [groups]

    group1 = admin,dazeair  #group1组里的成员 

    group2 = user1,user2

    [/]             #配置根目录的权限

    admin =rw       #admin用户对[/]目录的权限:r读,w写

    @group1 = rw    #@表示组,group1组有读写权限

    @group2 = r     #group2组只有r读权限

    * =             #这里表示其他用户无任何权限

    [www:/user1]    #配置根目录(www目录)下的user1文件夹的权限user1 = rw

    [www:/user2]    #配置user2文件夹的权限

    user2 = rw

         这里说明下,前面添加了四个用户,分了两个组,对于根目录group1拥有读写权限,而group2只有r权限。根目录(www目录)下有user1和user2两个文件夹,分别配置了user1和user2两个用户相应的权限。如不需要,可以不添加相应的代码。

    启动svnserve

    # svnserve -d -r /var/svndata/

    也可以使用 --listen-port 参数指定端口(默认端口3690),启动多个仓库

    正常情况下不会出现问题的,如出现请检查刚才的配置文件

    导入项目项目目录为svn://localhost/www
    创建svn仓库副本(nginx的读取目录,也就是web目录,我的web目录/var/www)
    进入web目录

    # cd /var

    同步

    svn co svn://localhost/www

    显示如下

    保存用户名与密码,实现之后的自动同步。
    这里可能会出现  错误:svn:E170001;认证失败

    还有可能出现找不到openssl错误,利用yum安装openssl和openssl-dev即可。

    看到这个恭喜,已经搭建成功了。

    设置svn更新后自动更新web目录

    # cd /var/svndata/www/hooks/

    里面会有很多.tmpl文件,这里我们只需要post-commit.tmpl文件,但这个文件只是模板文件,我们需要复制一份放在此目录下,命名为post-commit。此步骤很重要

    # cp post-commit.tmpl post-commit

    # vim post-commit

    在文件的底部修改和添加

    # "$REPOS"/hooks/mailer.py commit "$REPOS" $REV "$REPOS"/mailer.conf  # 注释掉这段代码

    export LANG=zh_CN.UTF-8

    export LANG=en_US.UTF-8

    svn update --no-auth-cache --non-interactive /var/www      #主要是这段代码,最后的地址是web地址

    说明:

    #!/bin/sh 说明是执行shell命令,不需要修改

    export LANG=zh_CN.GBK 是为了解决svn post commit 中文乱码,设置本地化编码,因为我的系统为GBK编码,SVN默认是UTF-8编码,如果不设置将会出现错误,而执行不成功,错误标识为svn: Can't convert string from native encoding to 'UTF-8'

    到这里自动更新也解决了,下一步就是开机自动启动。

    实现开机自动启动

    将svnserve -d -r /var/svndata/ 写入/etc/rc.local即可实现开机启动(一般在etc文件下,或者/etc/rc.d/文件夹下)

    # vim /etc/rc.local

    svnserve -d -r /var/svndata/

    exit 0

    ps:刚才配置的时候还有个user1之类的用户,user1只能管理user1目录,地址为svn://IP地址/www/user1

    并且请保证文件有读写权限,chmod -R 777 /var/www

    到这里所有大功告成,现在可以用客户端测试下了,一般都用TortoiseSVN,地址为svn://IP地址/www。

    你的svn服务器搭建好了吗?是不是很简单。

    大体就是这样,如果有问题,大家可以留言,

     
  • 相关阅读:
    Java内存泄漏分析系列之七:使用MAT的Histogram和Dominator Tree定位溢出源
    Java内存泄漏分析系列之六:JVM Heap Dump(堆转储文件)的生成和MAT的使用
    Java内存泄漏分析系列之五:常见的Thread Dump日志案例分析
    Java内存泄漏分析系列之四:jstack生成的Thread Dump日志线程状态
    Java内存泄漏分析系列之三:jstat命令的使用及VM Thread分析
    Java内存泄漏分析系列之二:jstack生成的Thread Dump日志结构解析
    Java内存泄漏分析系列之一:使用jstack定位线程堆栈信息
    安全框架Shiro
    JDK动态代理与CGLib动态代理
    解读分库分表中间件Sharding-JDBC
  • 原文地址:https://www.cnblogs.com/wi100sh/p/5230182.html
Copyright © 2011-2022 走看看