标签:www 公钥 sudo 用户 ssh var 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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。