利用webhook使php项目自动部署-php教程

资源魔 28 0
1.先来说一下主动部署的原理,普通正在咱们push代码的时分,能够主动申请webhook中设置的url,实现一次申请与呼应。那末只需咱们设置的url地点申请的php文件内容是执行饬令行git push饬令,则能够完成每一次正在内陆push推送一次代码到远端,效劳器就会主动git pull拉取最新的分支。

2.那末咱们需求设置的就是两个中央:

①git名目的webhook设置:

普通正在咱们托管代码的平台,正在名目设置里城市有一项webhook设置,外面普通只有一条内容,那就是url的设置,这里我设置的是http://www.xxxxx.com/webhook.php

(很显著,我正在网站的根目次扔了一个webhook.php文件,那末每一次我向远端推送代码的时分,我网站的webhook.php文件城市被拜访到)

②效劳器端(代码运转地位)的钩子文件(webhook.php)设置:

$co妹妹and = 'cd 代码地位';
$output = shell_exec($co妹妹and);
 
$co妹妹and = 'git pull';
$output = shell_exec($co妹妹and);
print $output;

我这里就是简略的两句,先cd饬令进入到相应目次,而后执行git pull饬令

次要就是shell_exec()函数的应用,这个是php执行饬令行的函数,同窗们能够本人baidu详细引见

这里要特地阐明的是,我以前执行shell_exec()饬令的时分,效劳器会无呼应,卡死,于是我用一句

$output = shell_exec('ls');
print_r($output);

指令测试,发现也超时,很希奇,以是不断放置来着,也想没有明确怎样回事,究竟结果就三五行代码,也没有晓得甚么缘由让它不断申请超时。起初过了两个月我想会没有会是当初print的字符串编码成绩?于是便有了上面的几句代码:

$encode = mb_detect_encoding($output, array('ASCII','GB2312','GBK','UTF-8'));
$trans = iconv( $encode, "UTF-8",$output);
print $trans;

而后居然能够执行了。。。我也想没有起来以前究竟是甚么缘由shell_exec()不断超时,又遇到的小同伴能够尝尝没有打印前往内容,或许将打印内容编码解决一下。不外置信遇到这个恶心成绩的小同伴仍是多数。

更多PHP相干常识,请拜访PHP教程!

以上就是行使webhook使php名目主动部署的具体内容,更多请存眷资源魔其它相干文章!

标签: php php开发教程 php开发资料 php开发自学

抱歉,评论功能暂时关闭!