[在用方法]
检查系统php运行时使用的用户
可以在webhooks.php
中写入以下代码,访问一下就知道了:
PHP
exec(“cd ~ && cd - && cd -“, $output);
print_r($output);
创建ssh公钥存放路径
先确认有没有/home/www/.ssh该路径,如果没有的话先创建:
Bash
sudo mkdir -p /home/www/.ssh
修改ssh公钥存放路径权限
Bash
sudo chown -R www:www /home/www/.ssh
使用www用户组去创建公钥
Bash
sudo -Hu www ssh-keygen -t rsa -C “xxx@xxxxxx.com“
三次回车后即可生成ssh公钥,接下来查看公钥
Bash
sudo cat /home/www/.ssh/id_rsa.pub
把公钥复制到项目的部署公钥管理里面即可。
注意事项
1、请确保项目的用户组为www,如果不是则:
Bash
sudo chown -R www:www 项目路径
2、首次需要先:
Bash
sudo -Hu www git pull
然后才可以使用webhooks进行自动化部署。
[报错解决]
用户用sudo执行命令时报如题所示错误:
xxx is not in the sudoers file.This incident will be reported
解决方法就是在/etc/sudoers文件里给该用户添加权限。如下:
切换到root用户
sudo su
etc/sudoers文件默认是只读的,对root来说也是,因此需先添加sudoers文件的写权限,如果缺少这一步,在修改/etc/sudoers之后,无法保存。除非之前已经赋予他有写的权限
chmod u+w /etc/sudoers
3.编辑sudoers文件,找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)
vim /etc/sudoers
给www用户添加root权限
wwwALL=(ALL) ALL
注意:
ps:这里说下你可以sudoers添加下面四行中任意一条
youuser ALL=(ALL) ALL
%youuser ALL=(ALL) ALL
youuser ALL=(ALL) NOPASSWD: ALL
%youuser ALL=(ALL) NOPASSWD: ALL
第一行:允许用户youuser执行sudo命令(需要输入密码).
第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码).
第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.
撤销sudoers文件写权限
chmod u-w /etc/sudoers
- 本文作者: stamina
- 本文链接: http://stam1na.gitee.io/2021/02/20/webhook/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!