美文网首页
使用webhook实现PHP项目的 自动部署

使用webhook实现PHP项目的 自动部署

作者: 勇不言弃92 | 来源:发表于2018-11-19 16:30 被阅读28次

环境说明

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,根据需要配置选项

屏幕快照 2018-11-19 16.08.41.png

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

6、git push后可在GitHub的页面查看到下面内容,看一下就能理解

屏幕快照 2018-11-19 16.27.56.png
屏幕快照 2018-11-19 16.09.05.png
屏幕快照 2018-11-19 16.09.12.png

相关文章

网友评论

      本文标题:使用webhook实现PHP项目的 自动部署

      本文链接:https://www.haomeiwen.com/subject/rirafqtx.html