Linux下SVN自动更新web(配置)
1. 创建svn项目库
svnadmin create /svn/repos/test
在项目库 hooks/ 目录下编辑 post-commit 文件 【钩子脚本】
#!/bin/bash
SVN=/usr/local/svn/bin/svn
WEB=/usr/local/nginx/html/test
export LANG=en_US.UTF-8
$SVN update --username 用户名 --password '密码' $WEB
其中SVN=右边改成 svn 命令位置 可用which svn得到
WEB=右边改成你实际的web目录
让post-commit有执行的权限 chmod 777 post-commit (一定要有)
保证版本库所有的内容的属主和属组是Apache的程序用户和组。
2. 导出项目至站点目录
格式:svn co 地址 目录
svn co https://svn.taoweikeji.com/repos/test /usr/local/nginx/html/test
注意,test站点要是svn检出的,且svn有写入权限。可以777或者setfacl
还要让hooks下所有都有777
1. 创建svn项目库
svnadmin create /svn/repos/test
在项目库 hooks/ 目录下编辑 post-commit 文件 【钩子脚本】
#!/bin/bash
SVN=/usr/local/svn/bin/svn
WEB=/usr/local/nginx/html/test
export LANG=en_US.UTF-8
$SVN update --username 用户名 --password '密码' $WEB
其中SVN=右边改成 svn 命令位置 可用which svn得到
WEB=右边改成你实际的web目录
让post-commit有执行的权限 chmod 777 post-commit (一定要有)
保证版本库所有的内容的属主和属组是Apache的程序用户和组。
2. 导出项目至站点目录
格式:svn co 地址 目录
svn co https://svn.taoweikeji.com/repos/test /usr/local/nginx/html/test
注意,test站点要是svn检出的,且svn有写入权限。可以777或者setfacl
还要让hooks下所有都有777
测试:
如果测试出现了 hoot out error 那就是 post-commit权限不够,如果$WEB权限有误,提交的时候将无法推送自动更新。
windows 下使用钩子实现本地提交,svn同步更新web
1)C:\Repositories\red\hooks\post-commit.bat
"C:\Program Files (x86)\VisualSVN Server\bin\svn.exe" update "C:\www\red" --username "***" --password "***"
给予脚本,站点目录 everyone 写入权限
2)右击svn server服务→属性→登录→此账户填入administrator及密码→重启服务
3)若桌面出现交互脚本提示,关闭Interactive Services Detection 服务
如果测试出现了 hoot out error 那就是 post-commit权限不够,如果$WEB权限有误,提交的时候将无法推送自动更新。
windows 下使用钩子实现本地提交,svn同步更新web
1)C:\Repositories\red\hooks\post-commit.bat
"C:\Program Files (x86)\VisualSVN Server\bin\svn.exe" update "C:\www\red" --username "***" --password "***"
给予脚本,站点目录 everyone 写入权限
2)右击svn server服务→属性→登录→此账户填入administrator及密码→重启服务
3)若桌面出现交互脚本提示,关闭Interactive Services Detection 服务
笔者注:此篇文章,非出息本人之手,而是出自一位做运维的朋友。方法的确行之有效,本人亲测成功。希望对看到此篇文章的朋友有帮助