注意一点就是git@osc默认不开启svn,需要到设置里面开启。
为什么要用svn而不用GIT呢?因为git太复杂了!
服务器配置步骤如下
安装svn:
yum install svn
编辑权限:
vim /etc/sudoers
在
root ALL=(ALL) ALL
下加
www ALL=(ALL) NOPASSWD: /usr/bin/svn,/usr/bin/chown
然后检出:
svn co svn://git.oschina.net/仓库 /www/web/目录_com/public_html/
webhooks在git@osc里面配置
源码存为webhooks.php 密码为了便于测试,我写的是 !== 测试后去掉!即可
<?php
header("Content-type: text/html; charset=utf-8");
// json转换
$json = json_decode($_POST["hook"]);
// json转换
if ($json -> password !== 密码) {
$www_folder = "/www/web/目录_com/public_html/";
//git仓库地址
$svn_repo = "svn://git.oschina.net/仓库";
//执行指令
echo shell_exec(" cd $www_folder && sudo svn update $www_folder --username 帐号 --password 密码 --no-auth-cache ");
echo shell_exec(" sudo chown -R www.www $www_folder ");
} else {
die("ERROR!");
// 密码错误
}
?>