PHP的WebHook处理,Centos7

又得重新部署一遍,我也是醉了,好多都给忘了,又踩了很多坑,记录一下
一.生成公钥
公钥有两个:1. git用户公钥,2. 部署公钥:
git用户公钥
ssh-keygen -t rsa -C “你的邮箱”
# 然后一直回车就行
# 生成的文件通常是 /root/.ssh/id_rsa,如果非root用户请查看提示上的路径
部署公钥
sudo -Hu apache ssh-keygen -t rsa   //可以通过ps -ef | grep httpd来查看当前启动和运行apache的用户 版本apache2.4.6
# 请选择 “no passphrase”,一直回车下去 这里以apache 用户作为演示
二.添加到代码托管平台
1.添加用户公钥
复制/root/.ssh/id_rsa.pub内容到个人设置页的SSH公钥里添加即可(https://coding.net/user/account/setting/keys)
2.添加部署公钥
复制/home/www/.ssh/id_rsa.pub的内容并添加到部署公钥:
选择项目 > 设置 > 部署公钥 > 新建 > 粘贴到下面框并确认
3.添加hook
选择项目 > 设置 > WebHook > 新建hook > 粘贴你的coding-webhook/webhook.php所在的网址。
钩子代码
<?php
exec('cd /mnt/yii2-admin && git pull 2>&1', $output, $return_var);
var_dump($output);
var_dump($return_var);
如果使用了sudo
因为apache用户没有权限使用sudo命令,所以需要在/etc/sudoer中加入 apache ALL=(ALL) ALL
最好是在使用钩子前手动使用,sudo -Hu apache git pull让git识别授权一下

发表评论

电子邮件地址不会被公开。