linux系统上安装svn服务器 环境linux+nginx+svnserver

系统:Ubuntu 12.04 64位 lnmp环境

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

阿里云服务器

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

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

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

两种方法

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. # yum install subversion   
  2.   
  3. # apt-get install subversion  

 

然后就是创建svn仓库

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

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. # cd /var  
  2. # mkdir svndata  
  3. # cd svndata  
  4. # mkdir www  

 

然后就是创建仓库了

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. # svnadmin create /var/svndata/www  

修改配置文件

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


[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. # cd /var/svndata/www  
  2. # ls  

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

进入conf目录

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. # cd www  

首先配置svnserve.conf

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. # vim svnserve.conf  

修改(把前面的#号去掉,配置后面的值,共修改五行代码)

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. anon-access = none  
  2. auth-access = write  
  3. password-db = passwd  
  4. authz-db = authz  
  5. realm = www  
在passwd文件中添加用户

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. # vim passwd  
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. [users]  
  2. admin = 123456  
  3. dazeair = 123456  
  4. user1 = 123456  
  5. user2 = 123456  
这里设置了四个用户,分别为admin,dazeair,user1和user2。根据情况不同可以随意设置。

在authz中添加组和权限
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. # vim authz  

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. [groups]  
  2. group1 = admin,dazeair  #group1组里的成员   
  3. group2 = user1,user2  
  4.   
  5. [/]             #配置根目录的权限  
  6. admin =rw       #admin用户对[/]目录的权限:r读,w写  
  7. @group1 = rw    #@表示组,group1组有读写权限  
  8. @group2 = r     #group2组只有r读权限  
  9. * =             #这里表示其他用户无任何权限  
  10.   
  11. [www:/user1]    #配置根目录(www目录)下的user1文件夹的权限user1 = rw  
  12.   
  13. [www:/user2]    #配置user2文件夹的权限  
  14. user2 = rw  
     这里说明下,前面添加了四个用户,分了两个组,对于根目录group1拥有读写权限,而group2只有r权限。根目录(www目录)下有user1和user2两个文件夹,分别配置了user1和user2两个用户相应的权限。如不需要,可以不添加相应的代码。


启动svnserve

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. # svnserve -d -r /var/svndata/  
  2.   
  3. 也可以使用 --listen-port 参数指定端口(默认端口3690),启动多个仓库  
正常情况下不会出现问题的,如出现请检查刚才的配置文件



导入项目
项目目录为svn://localhost/www 
创建svn仓库副本(nginx的读取目录,也就是web目录,我的web目录/var/www)
进入web目录
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. # cd /var  
同步
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. svn co svn://localhost/www  
显示如下

保存用户名与密码,实现之后的自动同步。
这里可能会出现  错误:svn:E170001;认证失败
还有可能出现找不到openssl错误,利用yum安装openssl和openssl-dev即可。

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

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

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. # cd /var/svndata/www/hooks/  
里面会有很多.tmpl文件,这里我们只需要post-commit.tmpl文件,但这个文件只是模板文件,我们需要复制一份放在此目录下,命名为post-commit。
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. # cp post-commit.tmpl post-commit  
  2. # vim post-commit  
在文件的底部修改和添加
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. # "$REPOS"/hooks/mailer.py commit "$REPOS" $REV "$REPOS"/mailer.conf  # 注释掉这段代码  
  2. export LANG=zh_CN.UTF-8  
  3. export LANG=en_US.UTF-8  
  4. 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/文件夹下)
[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. # vim /etc/rc.local  

[plain]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. svnserve -d -r /var/svndata/  
  2. exit 0  

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

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


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

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值