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

系统:Ubuntu 12.04 64位 lnmp环境

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

阿里云server

svnserver有2种执行方式:独立server和借助apache执行。

两种方式各有利弊。

我这里是独立的server,svnserver。第一次接触感觉非常麻烦,网上搜了非常多。最后摸索出了一个适合阿里云server的环境配置方案。当然也适合普通server,linux系统。

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

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

两种方法

# yum install subversion 

# apt-get install subversion


然后就是创建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文件里加入用户

# 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
显演示样例如以下

保存username和password,实现之后的自己主动同步。
这里可能会出现  错误: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


到这里全部大功告成,如今能够用client測试下了,一般都用TortoiseSVN,地址为svn://IP地址/www

你的svnserver搭建好了吗?是不是非常easy。


原创文章转载请注明:http://blog.dazeair.com/转载自:linux系统上安装svnserver 环境linux+nginx+svnserver


【推广】 免费学中医,健康全家人
原文地址:https://www.cnblogs.com/ldxsuanfa/p/10619757.html