在上篇文章中(利用webhooks进行自动化部署)提到,创建ssh公钥的时候,因为默认的www是没有登录权限的,所以需要去vim /etc/passwd修改www的登录权限,然后切换www去生成ssh公钥

实际上还有个更好更简单的办法,无需修改www权限。

检查系统php运行时使用的用户

可以在webhooks.php中写入以下代码,访问一下就知道了:

exec("cd ~ && cd - && cd -", $output);
print_r($output);

创建ssh公钥存放路径

先确认有没有/home/www/.ssh该路径,如果没有的话先创建:

sudo mkdir -p /home/www/.ssh

修改ssh公钥存放路径权限

sudo chown -R www:www /home/www/.ssh

使用www用户组去创建公钥

sudo -Hu www ssh-keygen -t rsa -C "xxx@xxxxxx.com"

三次回车后即可生成ssh公钥,接下来查看公钥

sudo cat /home/www/.ssh/id_rsa.pub

把公钥复制到项目的部署公钥管理里面即可。

注意事项

1、请确保项目的用户组为www,如果不是则:

sudo chown -R www:www 项目路径

2、首次需要先:

sudo -Hu www git pull

然后才可以使用webhooks进行自动化部署。