在某云购置了一台新服务器作为项目测试和部署用
以后资料都是网上搜集整理后测试过的!实在太多乱78遭的文章,还是自己整理一份备份好;
#Setup 1 安装lampp
这个很简单,直接从官方下载一个linux版本安装就可以,默认安装就OK;
https://www.apachefriends.org 我安装的是XAMPP for Linux v1.8.3 (PHP 5.5.9)
#Setup 2 安装subversion
直接用yum工具
#yum install subversion
搞定,最后测试是否安装成功
#svnserve --version
建立版本库
创建SVN的数据目录
#mkdir /opt/lampp/svn
test是版本库名称,名字随便起
#svnadmin create /opt/lampp/svn/test
创建成功之后的目录结构,之后主要修改conf目录的svnserve.conf文件和配置hooks目录post-commit

接着来修改配置用户权限
编辑版本库配置(不同版本库之间的配置是独立分开的)
#vi /opt/lampp/svn/test/conf/svnserve.conf
版本库配置
[general]
anon-access = none #注意这里不要填错,不然之后的日志信息就显示不了
auth-access = write
password-db = /opt/lampp/svn/test/conf/passwd #管理用户和密码
authz-db = /opt/lampp/svn/test/conf/authz #配置用户权限
realm = test
添加用户
#vi /opt/lampp/svn/test/conf/passwd
[users]
user1 = password1
user2 = password2
user3 = password3
user4 = password4
配置用户权限
#vi /opt/lampp/svn/test/conf/authz
[groups] #设置组
group1 = user1,user2 #多用户用逗号隔开
[/] #根目录权限设置(就是“test”这个文件夹)
user3 = rw #用户1权限是:可读写
user4 = r #用户2权限是:可读,不可写
user = #什么都没写代表没有任何权限
@group1 = rw #设置组权限
[kuming:/123] #设置根目录下“123”文件夹的权限
#说明“123”这个文件件怎么创建?这是在SVN服务器配置好之后,创建一个权限很高的用户在客户端登录SVN
#然后创建一个文件夹“123”。
启动SVN服务器
# svnserve -d -r /opt/lampp/svn
-d表示以daemon方式(后台运行)运行
-r /svn指定根目录是/svn
关闭SVN 服务器
# killall svnserve
# ps aux | grep svnserve 查看服务,端口:3690
然后就可以通过客户端软件TortoiseSVN访问
svn://服务器IP/版本库名称
ex: svn://192.168.1.100/test
#Setup 3 配置svn钩子
在提交更新时同步更新指定目录,进入版本库下的hooks目录,将post-commit.tmpl 复制为 post-commit,赋予post-commit可执行权限
REPOS="$1"
REV="$2"
# 暂时用不上,发邮件的脚本,注释掉不然commit时候报错
# mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
export LANG=en_US.UTF-8
SVN=/usr/bin/svn #svn的执行文件
STATIC_DIR=/opt/lampp/www/test #版本库目录
#需要注意用户需要有写的权限
${SVN} update ${STATIC_DIR} --username 用户 --password 密码
如果提交时,报错提示需要修改 .subservison/servers时,根据提示修改,一般如下:
vi .subversion/servers 文件 (目录find一下)
将 store-plaintext-passwords = no 选项注释去掉,并修改为 yes
到这里就完成了钩子配置;
这里可以svn配置成开机启动
#vi /etc/rc.local
添加执行命令
#svnserve -d -r /opt/lampp/svn