其他分享
首页 > 其他分享> > WebHooks

WebHooks

作者:互联网

钩子文件hook.php

<?php
//密码
$password = '123456';

$requestBody = file_get_contents("php://input");
if (empty($requestBody)) {
    die("请求参数是空的!");
}

//验证密码是否正确
$data = json_decode($requestBody, true);
if (!isset($data['password']) || $data['password'] != $password) {
    die("密码错误!");
}

// 只需这一行代码便可拉取
// shell_exec("cd /var/www/Project && git pull"); // 目录换成项目的目录
die("OK:".date("Y-m-d H:i:s"));
?>

创建web服务器用户目录,这里以apache用户为例,不同的环境请根据自己环境自行修改:

sudo mkdir /var/www/.ssh
sudo chown -R www-data /var/www/.ssh/  // 这里的用户要是 Apache 的运行用户,下同

公钥有两个:1. git用户公钥,2. 部署公钥:

1.用户公钥(用于git clone时认证权限)

ssh-keygen -t rsa -C "xxx@gmail.com" # 填自己的邮箱
 # 然后一直回车就行
 # 生成的文件通常是 /root/.ssh/id_rsa,如果非root用户请查看提示上的路径

2.部署公钥

sudo -Hu www-data ssh-keygen -t rsa
# 请选择 "no passphrase",一直回车下去

配置公钥

1.用户公钥

sudo cat /root/.ssh/id_rsa.pub # 查看生成的密钥内容,复制全部

2部署公钥

sudo cat /var/www/.ssh/id_rsa.pub # 查看生成的密钥内容,复制全部

修改目录权限:

chown -R www-data /var/www/hook # 这里请改成你创建的hook目录
chown -R www-data /var/www/Project # 这里请改成你的项目目录

要注意权限问题,目录权限一定要修改。

system("whoami"); // 查看是哪个用户执行该命令

配置完成后要用这个命令测试一下pull

sudo -u www-data git pull

标签:www,公钥,sudo,用户,ssh,var,WebHooks
来源: https://blog.csdn.net/qq233325332/article/details/122167287