coding可以部署php项目吗,GitHub、Coding的webhook配置(多项目部署)

如果有需求的可以看下我的小工具,用go写的,直接放服务器上运行就行了。

地址:https://github.com/HimiHL/webhook_go

webhook配置

之前就配置过Coding的Webhook,但是由于Linux上的权限问题没有设置成功;下面记录一下我的Webhook配置。

准备钩子文件

该文件,应该把权限给root

chown -R root:root git.sh

git.sh 请为该文件赋予777权限,否则无法执行

#!/bin/bash

WEB_PATH=$1 #这个代表项目所在目录,就是要生产的目录

WEB_USER='www' #用户, Nginx和Apache一般都是这个用户

WEB_USERGROUP='www' #用户组

echo "Start pull" #UI,这个无所谓

cd $WEB_PATH #进入目录

echo "pulling source code .. " #UI

sudo git reset --hard origin/master #回到这个版本

sudo git clean -f #清除文件

sudo git pull #拉文件下来

sudo git checkout master #回到master分支

echo "changing permissions .."

sudo chown -R $WEB_USER:$WEB_USERGROUP $WEB_PATH #防止pull下来过后出现权限问题,

echo "Finished."

hook.php (Coding版本)

$json=json_decode(file_get_contents('php://input'),true); #获取传送过后的数据,并转成JSON

$users = array(

'your token' => array(

'path' => 'your project path',

'name' => '随便写的以便标识项目'

),

);

if(!empty($json['token']) && array_key_exists($json['token'] , $users) !== false)

{

$path = $users[$json['token']]['path'];

if(!is_dir($path)){

header("HTTP/1.1 404 Not Found");

header("Status: 404 Not Found");

exit;

}

echo shell_exec('./git.sh "'.$path.'"');

}else{

header("HTTP/1.1 404 Not Found");

header("Status: 404 Not Found");

exit;

}

hook.php (GitHub版本) 暂未更新

$secret = ''; #在GitHub上填写的secret

//获取http 头

$headers = array();

//Apache服务器才支持getallheaders函数

if (!function_exists('getallheaders')) {

foreach ($_SERVER as $name => $value) {

if (substr($name, 0, 5) == 'HTTP_') {

$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;

}

}

}else

{

$headers = getallheaders();

}

//github发送过来的签名

$hubSignature = $headers['X-Hub-Signature'];

list($algo, $hash) = explode('=', $hubSignature, 2);

// 获取body内容

$payload = file_get_contents('php://input');

// 计算签名

$payloadHash = hash_hmac($algo, $payload, $secret);

$target = "/home/wwwroot/cxzfbAdmin";

// 判断签名是否匹配

if ($hash === $payloadHash) {

//调用shell

echo shell_exec("./git.sh");

}else{

http_response_code(404);//返回404,反正都执行了返回404也无所谓

}

GitHub中配置Webhook

50ea356152ac

GitHub上添加webhook

50ea356152ac

配置webhook

切记,如果你的网站是免费的https配置,请将这个禁用掉,否则你会后悔不已

50ea356152ac

禁用SSL验证

Coding中配置Webhook

50ea356152ac

Coding中添加webhook

50ea356152ac

配置webhook

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值