Centos7上搭建SVN服务器并实现自动同步至web目录
来源:互联网 发布:彩影软件怎么样 编辑:程序博客网 时间:2024/05/16 23:51
Centos7上搭建SVN服务器并实现自动同步至web目录
时间:2016-05-15 01:16来源:blog.csdn.net 作者:baidu_30000217的博客 举报 点击:1135次
前言:
由于最近跟学长一起合作完成一个小项目,然后我俩比较熟悉的版本控制是SVN,就考虑着在服务器上搭建一个SVN服务器。现在在这里给出简单的搭建过程。
(其实吧,能用Git就尽量用git吧,好处自己百度,有关搭建请参考我的另一篇博客搭建服务器上的GIT并实现自动同步到站点目录(www),这篇博客与git搭建的过程应该是基本一样的)
预期目的:
1、仓库放在 /var/svn/ 目录下,并且仓库名为 project
2、创建用户组lsgogroup,该组下添加两个成员lsgoweb1、lsgoweb2,密码直接用用户名,两用户可以checkout代码和提交代码
3、利用SVN的钩子实现当仓库的代码更新的时候自动同步至我们的web目录,在这里,我的web目录在 /home/www/ 下
一、搭建svn环境并创建仓库:
1、安装Subversion:
yum install -y subversion
2、检测是否安装成功(查看svn版本号)
svnserve --version
3、创建版本库
//先建目录mkdir /var/svncd /var/svn//创建版本库svnadmin create /var/svn/projectcd project//会看到自动生成的版本库文件conf db format hooks locks README.txt至此,svn环境搭建成功。
二、创建用户组及用户:
1、 进入版本库中的配置目录conf,此目录有三个文件: svn服务综合配置文件(svnserve.conf)、 用户名口令文件(passwd)、权限配置文件(authz)。
2、修改权限配置文件:
vim authz
3、配置用户名命令文件:
vim passwd
4、配置SVN服务综合配置文件svnserve.conf
//找到以下配置项,将前面的#号去掉,然后做相应的配置anon-access = none //匿名用户访问权限:无auth-access = write //普通用户访问权限:读、写password-db = passwd //密码文件authz-db = authz //权限配置文件realm = /var/svn/project //版本库所在1注意:所有以上的配置项都需要顶格,即前面不能预留空格,否则报错
5、启动svn服务:
svnserve -d -r /var/svn
如果提示:
svnserve: E000098: Can't bind server socket: Address already in use
证明现在svn已经被启动了,由于我们修改了配置文件,因此要重启svn服务
//查看svn服务详情ps aux | grep svn//将svn服务强制停止 其中790为svn服务的ID号,-9是kill的参数kill -9 790或者用killall svnserve再运行 svnserve -d -r /var/svn,进行启动服务
6、测试服务器:
//我们在web目录测试(/home/www)cd /home/wwwsvn co svn://localhost/project如果提示:Checked out revision 1. 表示checkout成功
我们添加新文件来测试是否提交成功
cd /home/wwwtouch index.phpsvn add index.php //成功的话会显示 A index.phpsvn commit index.php -m "测试提交文件"假如最后提示:Adding index.phpTransmitting file data .Committed revision 2.则表示我们svn服务器搭建成功!文件已经能够推送了。
7、本地拉取、推送
在本地首先要安装SVN吧
就填刚才我们创建的lsgoweb1或lsgoweb2,和对应的密码即可。
三、实现svn更新自动同步到web目录:
1、在web目录中checkout版本库
这一步算是比较关键的一步了,当时我搭建的时候试了无数次,就是缺少了这一步。把刚才checkout的版本库删掉,我们来一次比较正式的checkout:
svn co svn://localhost/project /home/www --username lsgoweb1(SVN账号) --lsgoweb1(SVN密码)
进入/var/svn/project/hooks下,建立post-commit文件:
cd /var/svn/project/hooksvim post-commit
//在该文件里添加如下代码,保存
!/bin/sh//设定环境变量,如果没有设定可能会出现update报错 #设定语言,根据系统语言设置,如果是GBK就设置为 LANG=zh_CN.GBKexport LANG=en_US.utf8SVN_PATH=/usr/bin/svn //这里不用改WEB_PATH=/home/www //web目录,如果你的不同,可以改//这里的用户随便一个就好$SVN_PATH update $WEB_PATH --username 'lsgoweb1' --password 'lsgoweb1' --no-auth-cache保存退出。
修改post-commit用户为www目录用户
chown apache:apache post-commit //我的 /home/www 的用户组和所有者都是apache
给post-commit 执行权限:
chmod 755 post-commit
- 在Centos7上搭建SVN服务器并实现自动同步至web目录
- Centos7上搭建SVN服务器并实现自动同步至web目录
- Centos7上搭建SVN服务器并实现自动同步至web目录
- Centos7上搭建SVN服务器并实现自动同步至web目录
- Centos7上搭建SVN服务器并实现自动同步至web目录
- centOs6.5 SVN 服务器搭建并实现提交自动同步到web服务器
- centos7.2上搭建ntp服务器,并实现时间同步
- 搭建服务器上的GIT并实现自动同步到站点目录(www)
- 搭建服务器上的GIT并实现自动同步到站点目录(www)
- 搭建服务器上的GIT并实现自动同步到站点目录(www)
- 搭建服务器上的Git并实现自动同步到站点目录(www)
- SVN服务器搭建和web目录同步
- CentOS下安装配置SVN服务器并自动同步到web目录
- CentOS下安装配置SVN服务器并自动同步到web目录
- Centos下搭建SVN服务器并同步仓库内容到WEB目录
- centos下配置svn服务器并同步web目录
- CentOS 创建SVN 服务器,并且自动同步到WEB 目录
- 实现svn更新自动同步到web目录
- 字符串与base64互转
- Android6.0 显示系统(三) 管理图像缓冲区
- 机器学习
- JQuery简单实现菜单的点击效果
- 使用Openstack创建项目和虚拟机
- Centos7上搭建SVN服务器并实现自动同步至web目录
- 3.2、Dcoker-1.12 search(搜索镜像)和pull(拉取镜像)[五]
- zookeeper学习(高级特性)
- 链表的部分翻转
- 三角形
- masonry 瀑布流布局滑动到底部加载更多
- global与$GLOBALS['']的区别及用法
- android异步消息机制,Handler,Looper,MessageQueue的关系
- matlab_loglogplot