叫我大侠
人可以失败,但不可以被击败
linux下通过yum安装svn及钩子配置

svn搭建及配置

1.安装svn (一般centos自带svn)

yum -y install subversion

2.配置,建立版本库svn目录

mkdir /data/svn
svnserve -d -r /data/svn      #启动 svn服务

3.建立版本库

创建一个新的svn项目

svnadmin create /data/svn/ifengweb

配置改项目,允许用户cleey访问

cd /data/svn/ifengweb/conf/
vim svnserve.conf

anon-access=none
auth-access=write
password-db=passwd         #用户文件名

注:修改的文件前面不能有空格,否则启动svn server出错

vim passwd
[users]
#<用户1> = <密码1>
cleey=easypwd

4.客户端连接

svn co svn://server_ip/ifengweb

用户:cleey
密码:easypwd

提示输入root密码,直接回车,然后输入上面用户密码


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

实现svn 和 web 同步,及自动更新

1.建立你的web目录 /var/www/html/

2.checkout 一份svn,将svn代码下载的web目录下

svn co svn://localhost/ifengweb /var/www/html/ifengweb

这样 /var/www/html/ifengweb 代码就有了

3.建立同步脚本

cd /data/svn/ifengweb/hooks/
cp post-commit.tmpl post-commit

编辑post-commit,在文件最后添加以下内容

ifengwebpath='/var/www/html/ifengweb'
svn update $ifengwebpath --username cleey --password esaypwd --no-auth-cache

增加脚本执行权限

chmod +x post-commit

svn服务的关闭:

killall svnserve

svn开启:

svnserve -d -r /data/svn


SVN自动同步程序执行流程:

1、用户提交文件到SVN服务器,提交操作成功后触发post-commit脚本

2、在post-commit版本文件中使用php_script.php执行PHP脚本

3、在PHP脚本中通过exec系统调用更新服务器上的版本库工作副本

4、根据更新操作结果日志,对另一个SVN版本库进行对应的操作处理

下面是测试

svn使用提交

1.客户端到目录下添加一个文件

cd ifengweb
vim readme.rd
hello, test post-commit

2.添加并提交到版本库

svn add readme.rd
svn commit -m 'init'

3.在svn服务器上可以看到提交成功了的文件

如果有钩子,如上面的配置可以看到web目录下也自动更新了

<< 上一篇 Mac OS X 自带PHP环境gd库扩展缺少freetype 解决办法 Nginx报错403 forbidden (13: Permission denied)的解决办法 下一篇 >>
文章标签
随意 | Created At 2014 By William Clinton | 蜀ICP备14002619号-4 |