如何利用webhook自动更新代码网上已经有很多教程,这里记录一下一个小细节。
比如,我要更新的网站目录所属用户是www,则必须在www用户环境下生成ssh-key,然后添加到coding.net这个项目的部署公钥中,否则git pull会执行失败。
附上webhook脚本:
<?php
error_reporting(1);
$target = '/home/wwwroot/site'; // web目录
$token = 'your token';
$wwwUser = 'www';
$wwwGroup = 'www';
$json = json_decode(file_get_contents('php://input'), true);
if (empty($json['token']) || $json['token'] !== $token) {
exit('error request');
}
$cmd = "cd $target && git pull 2>&1 && chown -R {$wwwUser}:{$wwwGroup} $target/";
$result = shell_exec($cmd);