,如果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() { $server = "\r\n\r\n\r\n\$_SERVER:\r\n"; foreach ($_SERVER as $k => $v) $server .= $k . ': ' . $v . "\r\n"; savelogfile('gitpull', $server, true); if (@$_SERVER['HTTP_X_GITHUB_EVENT'] != 'push' && @$_SERVER['HTTP_X_GITHUB_EVENT'] != 'release') return errjson('http header error'); if(@$_SERVER['HTTP_AUTHORIZATION'] != 'Bearer token123456') return errjson('http 授权标头 AUTHORIZATION error'); 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'); } public static function json_result() { $data = get('data'); if ($data == 'success') { } else { } return succjson(); } }