环境说明
laravel项目,centos系统,nginx服务器,PHP7,代码托管在github中。
开始---5步即可
1、首先在github上创建项目,root账户下在centos的“/home”下clone项目,项目名“qxf”,此时项目路径“/home/qxf”。要在php.ini中确认“disable_functions”不包含“system”函数,centos系统下命令“which php.ini”可查找php.ini的路径
2、laravel项目中增加一个接口
Route::post('hook','Controller@hook');
在Controller.php中增加一个方法
public function hook(Request $request){
//查看当前账户,我服务器用的是nginx,所以这里返回的用户是‘nginx’
// system('whoami');
//重定位
system('sudo cd /home/qxf');
//这一步很关键
system('sudo unset GIT_DIR');
system('sudo git pull');
return 'Hello ly !';
}
3、在上面的hook方法中通过“system('whoami');”得知执行hook方法时的用户是“nginx”,更改“/etc/sudoers”文件
root ALL=(ALL) ALL //找到这一行
nginx ALL=(ALL) NOPASSWD:/usr/bin/git //添加这一行
4、在github中对应的项目上找到webhooks,添加URL,根据需要配置选项

5、将GitHub上面的代码clone到电脑上,修改“git push”GitHub将会调用第四部添加的URL,执行hook方法中的命令,centos上的项目就会自动更新,通过GitHub传递的参数可在hook方法中编写代码达到自定义的更新发布。
6、git push后可在GitHub的页面查看到下面内容,看一下就能理解



网友评论