创建webhook.php

<?php

exec("git pull 2>&1",$out);
var_export($out);

直接这样是无效的:

exec("git pull",$out);
//这样是无效的

经过查阅资料,发现应该添加 ​​2>&1​

给 .git 文件夹添加 www 作者

如果 .git 文件夹 的所有者是 root,会报错,权限拒绝

error: cannot open .git/FETCH_HEAD: Permission denied
权限不够:

先给.git所有文件加上所有者,我服务器上操作git的用户叫www:

sudo chown -R www:www .git

再给FETCH_HEAD文件加读写权限:

sudo chmod -R 777 FETCH_HEAD

(开始给的是755,不行,后台直接粗暴给777,就可以了)

给php.ini去掉禁用函数

Linux下宝塔环境的github自动部署webhook_github

array ( 0 => 'Already up-to-date.', )

配置github的webhook

Linux下宝塔环境的github自动部署webhook_github_02

 这样,当有git push的时候就会自动更新代码啦

不过这是没有加任何安全校验的php代码,推荐测试环境使用