1、安装svnphp
# yum -y install svnweb
2、查看svn版本信息安全
# svnserve --version服务器
3、搭建svn版本库(假设项目名称为project)tcp
一、首先建立版本库目录svn
# mkdir -p /var/svn/project工具
二、建立版本库post
# svnadmin create /var/svn/project //版本库路径跟上一步保持一致阿里云
前两步执行完成后 在 /var/svn/project/ 路径下就会建立一些版本配置、日志等文件夹和文件,目录以下spa
后面主要修改的有 conf/ 和 hooks/ 两个
conf/
hooks/
三、设置svn帐号和密码
# vi /var/svn/project/conf/passwd //这里的文件路径能够用相对路径,也能够用绝对路径。例如:当前位置在 /var/svn/project/conf/中,则 #vi passwd 便可打开passwd文件了
打开文件后,英文状态下按(i)键进入编辑模式,录入帐号名和密码。格式 username = password。
编辑完成后,先点击(Esc)键,而后同时按下(Shift+;),左下角出现(:),这时输入wq点击回车保存修改并退出。(lll¬ω¬)!!! 竟然在描述文本文件编辑命令,后面再碰见就不这么详细了喵″
四、设置svn帐号的读写权限
# vi /var/svn/project/conf/authz
[group]为帐号分组状况。格式groupname = username_1,username_2,,,
[project:/]
@manager = rw //赋予manager组成员整个项目的读写权限
[project:/php]
@php = rw //赋予php组成员项目库php分支的读写权限
[project:/iOS]
iOS_3 = rw //赋予帐号iOS_3项目库iOS分支的读写权限
[project:/]
* = r //赋予全部成员整个项目读取权限
保存退出
五、修改项目svn相关配置文件
# vi /var/svn/project/conf/svnserve.conf
找到图中白色四行,去掉前面(#)便可,保存退出。
六、启动svn版本库
# svnserve -d -r /var/svn/
这里的注意一下,启动svn版本库时路径最好写至svn/,由于后面能够再在该路径下建立其余项目版本库,这样就没必要每一个项目都启动一个svn进程了。
七、查看svn进程
# ps aux | grep svn
八、端口设置
# firewall-cmd --zone=public --add-port=3690/tcp --permanent //开启svn端口,若是使用的是阿里云的服务器话,可能就要登录阿里云控制台配置安全规则,具体配置方法阿里云那边有详细说明。
# systemctl restart firewalld.service //重启防火墙
九、到这里版本库搭建就完成了。能够到本地使用svn工具检出看看
4、SVN实现自动更新WEB目录
前面有描述,svn项目下面有一个hooks/目录,里面存放的是所有的钩子脚本的模板。
进入svn项目下的hooks/文件
# cd /var/svn/project/
新建编辑客户端提交后触发的钩子文件
# vi post-commit
编辑内容以下
#!/bin/sh REPOS="$1" REV="$2" export LANG='zh_CN.UTF-8' SVN_PATH=/usr/bin/svn WEB_PATH=/var/www/project SVN_USER=gaoyi SVN_PW=gaoyi950815 LOG_PATH=/var/svn/project/log/svn.log echo `datetime: "+%Y-%m-%d %H:%M:%S"` >>$LOG_PATH $SVN_PATH update $WEB_PATH --username $SVN_USER --password $SVN_PW --no-auth-cache >>$LOG_PATH
保存退出后修改其文件权限
# chmod 777 post-commit
这里的钩子文件就编辑完成了。
接着就到服务器web目录,也就是上面钩子中的WEB_PATH下checkout项目了。操做以下
# svn checkout svn://192.168.6.74/project/ /var/www/project/
其中第三部分为svn版本库地址,第四部分为web目录也就是项目地址
第一次checkout时会要求输入用户名和密码以经过验证。
checkout成功以后,后面提交的更新就会自动同步到web目录下来了。
初次编写博客,写得有什么不对或不明了的地方还请各位指正提示!
谢啦!!☆⌒(*^-゜)v。