,如果gitpull.x文件存在,则执行git pull拉取,成功后删除文件。 * gitpull.sh脚本将拉取记录将到ud/gitpull.log文件。 * 该方案无需增加php执行权限,相对安全,可以实现web集群部署。 * 也可用于golang等编译语言自动部署。 * * 服务器端安装git。 * 进入软件目录,拉取代码: * git clone http://git.ciy.cn:4001/xxx.git . * 在cron中定期执行: * * * * * * /var/spool/cron/gitpull5.sh /软件目录 "http://访问域名/ajax/api/gitpull.result?data=" */ //http://xxx.cn/ajax/api/gitpull.push //http://xxx.cn/ajax/api/gitpull.result namespace web\api; class gitpull { public static function json_push() { if (@$_SERVER['HTTP_X_GITHUB_EVENT'] == 'push' || @$_SERVER['HTTP_X_GITEE_EVENT'] == 'Push Hook') { if ($fp = fopen(PATH_WEB . 'ud/gitpull.x', 'w')) { @fwrite($fp, date('Y-m-d H:i:s')); fclose($fp); return succjson(); } else return errjson('gitpull.x create error'); } else { $server = "\$_SERVER:\r\n"; foreach ($_SERVER as $k => $v) $server .= $k . ': ' . $v . "\r\n"; savelogfile('gitpull', $server, true); return errjson('http header error'); } } public static function json_result() { $data = get('data'); if ($data == 'success') { } else { } return succjson(); } }